2013-05-03 24 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個

相關問題