2011-08-09 148 views
0

嘗試使用HttpClient閱讀網頁。但是一些html被一些js魔法隱藏,試着在這個頁面上查看源代碼http://uc.worldoftanks.eu/uc/accounts/#wot&at_search=a 任何想法如何讓HttpClient返回「完整的」html頁面?html src隱藏

回答

5

HttpClient不處理javascript,這意味着在從服務器讀取http內容時沒有可隱藏的內容。

它可能倒過來,在頁面上運行的JavaScript可能創建新的HTML元素,並將它們追加到DOM ......這是不是你可以使用處理HttpClientHttpClient是設計了一個通信客戶端純粹是通過HTTP連接讀取數據。

+0

嗯,對,太糟糕了:( –

+0

@martin:據我所知,在頁面加載後添加的唯一數據是表數據,通過查詢另一個地址,您仍然可以輕鬆獲取該數據;請參閱我的文章。 –

0

當網頁加載,請求被髮送到
http://uc.worldoftanks.eu/uc/accounts/?type=table&offset=0&limit=25&order_by=name&search=a&echo=1&id=accounts_index

嘗試按該地址與您的HttpClient來查看錶數據。玩offset,limitorder_by值來改變分頁和排序。

儘管如此,手動瀏覽到所述URL會產生重定向,因此您需要在您的HttpClient中包含一些Request標頭。請求我的瀏覽器的問題,這並不產生與表數據的JSON響應,的完整標題如下:

GET /uc/accounts/?type=table&offset=0&limit=25&order_by=name&search=&echo=1&id=accounts_index HTTP/1.1 
Host: uc.worldoftanks.eu 
Connection: keep-alive 
Referer: http://uc.worldoftanks.eu/uc/accounts/?type=table&offset=0&limit=25&order_by=name&search=a&echo=1&id=accounts_index 
X-Requested-With: XMLHttpRequest 
X-CSRFToken: 5e33bf57602f76de9285e9b14bcfe7fe 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1 
Accept: application/json, text/javascript, */*; q=0.01 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-GB,en;q=0.8,en-US;q=0.6,ar;q=0.4 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Cookie: csw_popup=true; __utma=21812543.1316104722.1312873581.1312873581.1312873581.1; __utmb=21812543.2.10.1312873581; __utmc=21812543; __utmz=21812543.1312873581.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); csrftoken=5e33bf57602f76de9285e9b14bcfe7fe 

他們可能會尋找X-Requested-WithAcceptReferrer,例如。