【发布时间】:2011-08-09 07:04:16
【问题描述】:
尝试使用 HttpClient 读取网页。但是一些 html 被一些 js 魔法隐藏了,尝试在这个页面上点击查看源代码http://uc.worldoftanks.eu/uc/accounts/#wot&at_search=a
知道如何让 HttpClient 返回“完整”的 html 页面吗?
【问题讨论】:
标签: java javascript html httpclient hidden
尝试使用 HttpClient 读取网页。但是一些 html 被一些 js 魔法隐藏了,尝试在这个页面上点击查看源代码http://uc.worldoftanks.eu/uc/accounts/#wot&at_search=a
知道如何让 HttpClient 返回“完整”的 html 页面吗?
【问题讨论】:
标签: java javascript html httpclient hidden
HttpClient不处理javascript,也就是说从服务器读取http内容时没有可以隐藏的内容。
可能反过来,页面上运行的 javascript 可能会创建新的 html 元素并将它们附加到 DOM...这不是您可以使用 HttpClient 处理的, HttpClient 是一个纯粹为通过 HTTP 连接读取数据而设计的通信客户端。
【讨论】:
当该页面加载时,请求被发送到
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 中包含一些请求标头。我的浏览器发出的请求的完整标头(确实会产生带有表数据的 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。
【讨论】: