0

我正在尝试在此处获取该页面的一些信息

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

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

4

3 回答 3

1

该站点在页面加载时使用 AJAX 请求来获取实际数据。你所指的URL对应的AJAX请求是:

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

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

我使用screen-scraper 的代理发现了这一点,尽管您也可以使用 Charles 或 HttpFox 之类的东西来确定它。关键是代理站点并确定哪个 AJAX 请求对应于您所追求的信息。

于 2013-06-12T00:07:26.317 回答
1

您必须使用支持 Javascript 并且可以嵌入到您的 Java 应用程序中的Web 浏览器。

这在文档很少的情况下并不容易。:(

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

于 2013-06-11T22:29:58.153 回答
0

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

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

于 2013-06-12T02:54:33.660 回答