尝试使用HttpClient阅读网页。但是有些html被某些js魔法隐藏了,试着点击此页面上的查看源http://uc.worldoftanks.eu/uc/accounts/#wot&at_search=a
知道如何让HttpClient返回“完整”的html页面吗?
答案 0 :(得分:5)
HttpClient
不会处理javascript,这意味着从服务器读取http内容时,没有任何内容可以隐藏。
可能反过来说,在页面上运行的javascript可能创建新的html元素并将它们附加到DOM ...这不是你可以使用{{1}处理的东西},HttpClient
是一个通信客户端,纯粹是为了通过HTTP连接读取数据而设计的。
答案 1 :(得分: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
,limit
和order_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-With
或Accept
或Referrer
。