2013-05-03 64 views
0

我正在制作一个Java程序,它涉及从网页中提取标签。对于解析,我使用Jsoup,它工作正常。但是有一些问题下载页面中的标签。 我有4个文件: -我如何获得HTML中的所有脚本的内容

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

当我在这4个文件中搜索字符串“< script />”时,所有结果都不一样。

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

什么是这种情况的原因区别 ?如何从页面获取所有脚本标记?

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

在此先感谢...

+0

*“我应该使用哪个文件来测试我的计划吗?” *也许从一个Web服务,不走极端,以防止** **的编程访问(如谷歌一样)? – 2013-05-03 12:25:41

+0

您是否处理了从这些网站获取的内容,或者您​​是否也要求这样做? – 2013-05-03 12:44:06

回答

1

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

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); 
     } 
    } 

} 
+0

感谢您的回答。但问题出在HTML pagecontent。我的页面内容代码是String pageContent = Jsoup.connect(“www.google.co.in”)。get();其中应包含10个

相关问题