http在页面加载完成之前获取html

时间:2013-06-11 22:04:17

标签: java android http screen-scraping

我想了解that page here

的一些信息

但是会发生什么,有1秒。在页面上加载,以便我的http获取加载页面的所有信息,而不是加载后的页面。尽管页面没有在加载和查看信息之间重定向。

所以基本上http响应带有加载的html。

3 个答案:

答案 0 :(得分:1)

您必须使用支持Javascript的网络浏览器,并且嵌入到您的Java应用程序中。

使用少量文档并不容易。 :(

JxBrowser似乎是最简单的解决方案之一,但AFAIK并不是免费的,但你可以尝试询问他们你的项目是否是开源的......

答案 1 :(得分:1)

当网页加载以获取实际数据时,网站正在使用AJAX请求。与您引用的URL对应的AJAX请求是:

http://forecast.io/forecast?q=51.7589,-0.2343,1370905200&satellites

您会注意到它会产生包含预测数据的JSON响应。

我使用screen-scraper's代理发现了这一点,但你也可以使用像Charles或HttpFox这样的东西来确定它。关键是代理网站并确定哪个AJAX请求与您所追求的信息相对应。

答案 2 :(得分:0)

当您在浏览器上访问网页时,它会返回html。 html只是文字。您的浏览器会将其读取并将其呈现在您正在查看的视图中。这是静态内容。在html中,你可以嵌入脚本,例如。 javascript,您的浏览器可以运行以发送更多HTTP请求并动态修改此视图。

由于你发送的HTTP请求来自不是浏览器的HTTP客户端(并且不能执行javascript),所以你得到的只是来自HTTP响应的字节,可能只是html。如果您想要在浏览器中加载的信息,您将必须弄清楚哪些请求检索它以及如何解析它们的响应。