0

我正在制作一个 Java 程序,其中涉及从网页中提取标签。对于解析,我正在使用 Jsoup,它工作正常。但是下载页面中的标签数量存在一些问题。我有 4 个文件:-

  1. goog1.htm(我通过浏览器从https://www.google.co.in保存)
  2. goog2.html(我使用命令“wget https://www.google.co.in ”下载)
  3. goog3.html(我使用 BufferedReader 和 InputStreamReader 通过我的 Java 程序下载)
  4. goog4.html(我通过从“查看源代码:https ://www.google.co.in/ ”复制整个代码得到)

当我在这 4 个文件中搜索字符串“< script/>”时,都给出了不同的结果。

  • goog1.htm - 16 次
  • goog2.html - 5 次
  • goog3.html - 5 次
  • goog4.html - 10 次

这种差异的原因是什么?如何从页面中获取所有脚本标签?

我应该使用哪个文件来测试我的程序?

提前致谢...

4

1 回答 1

1

1)标签数量不同的原因是一个页面script中可以script定义多个标签。HTML

2) 页面中的所有脚本标签都已加载,它们将运行。如果您想测试所有脚本代码,则需要对所有脚本代码进行测试。这取决于您的测试范围。

3) 如果您将内容作为文本处理到您的 JAVA 程序中,您可以通过使用子字符串方法解析来获取所有脚本标签内容。但我建议使用Apache commons StringUtils类来做到这一点。

import org.apache.commons.lang.StringUtils;

public class scriptContentRetriever{

public static void main(String[] args) {
        String yourScriptContent = "<script>This is Script 1 Content</script><script>This is Script 2 Content</script>";
        String[] scriptStrings = StringUtils.substringsBetween(yourScriptContent, "<script>", "</script>");
        for (String scriptString : scriptStrings) {
            //Do what ever you want with the script content right here.
            System.out.println(scriptString);
        }
    }

}
于 2013-05-03T12:53:09.603 回答