2012-03-23 36 views
3

我想一個HTML網頁的完整的源代碼加載到Java中的String的全部源代碼。我嘗試了幾種方法,但是,我幾乎獲得了所有的源代碼。更糟糕的是:我沒有得到的主要部分之一是我最需要的部分!爪哇 - 如何加載HTML網站

+5

你有我們的同情心,但是直到你向我們展示你的代碼並且更詳細地解釋你沒有收到的內容的性質,你纔會得到更多的東西。 – 2012-03-23 22:46:34

+2

向我們展示你迄今爲止做了什麼,並更詳細地解釋。? – RanRag 2012-03-23 22:47:05

+1

HTML網站是否公開?如果是這樣,你可以發佈一個鏈接? – mellamokb 2012-03-23 22:51:26

回答

6
URL url = new URL("http://www.website.com"); 
URLConnection spoof = url.openConnection(); 

//Spoof the connection so we look like a web browser 
spoof.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; H010818)"); 
BufferedReader in = new BufferedReader(new InputStreamReader(spoof.getInputStream())); 
String strLine = ""; 
String finalHTML = ""; 
//Loop through every line in the source 
while ((strLine = in.readLine()) != null){ 
    finalHTML += strLine; 
} 
+0

我在那裏看到一個Mozilla選項。如果你有Mozilla,這隻能工作嗎?我希望這適用於絕大多數網頁瀏覽器。 – Confiqure 2012-03-23 22:56:20

+1

不,你只是假裝你在使用Mozilla瀏覽器,所以看起來你是瀏覽網站的合法用戶。 – JCab 2012-03-23 22:57:16

+0

哦,好吧。讓我測試一下。 – Confiqure 2012-03-23 23:15:08

5

這可能是因爲你正在尋找的內容實際上是動態加載,通過Ajax/JavaScript的。例如,一個網站可能包含一個空的DIV標籤,只有在頁面加載後(通過AJAX調用到另一個位置)纔會填充很多東西。

+0

在這種情況下,有一個很大的機會,'HtmlUnit'或類似的庫將能夠處理這些動態內容。 – bezmax 2012-03-23 22:58:47