首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抓取不在源代码中的网站内容

抓取不在源代码中的网站内容
EN

Stack Overflow用户
提问于 2011-08-25 03:23:44
回答 2查看 509关注 0票数 0

我想从http://www.fxstreet.com/rates-charts/currency-rates/这样的网站上获取一些财务数据

到目前为止,我使用liburl获取源代码,并使用正则表达式搜索来获取数据,然后将其存储在一个文件中。

然而,有一个小问题:在我在浏览器中看到的页面上,数据几乎每秒都会更新。但是,当我打开源代码时,我要查找的数据每隔两分钟才会发生变化。因此,我的程序只获取比可能的时间分辨率低得多的数据。

我有两个问题:

(i)两分钟内保持不变的源代码如何产生每秒变化的表?其机制是什么?

(ii)如何获得具有第二时间分辨率的数据,即如何读出源码中未显示的变更表。

提前谢谢你,大卫

EN

回答 2

Stack Overflow用户

发布于 2011-08-25 03:32:06

您可以使用FireBug中的网络面板来检查在页面打开时发出的HTTP请求(通常是为了获取数据)。您引用的这个特定页面似乎正在向http://ttpush.fxstreet.com/http_push/发送POST请求,然后接收和解析JSON响应。

票数 1
EN

Stack Overflow用户

发布于 2011-08-25 03:37:04

尝试向http://ttpush.fxstreet.com/http_push/connect发送POST请求,看看会得到什么

它将不断加载新数据

编辑:

你可以使用liburl或python,这并不重要。在HTTP下,当您浏览web时,将发送GET或POST请求。转到网站,打开开发人员工具(Chrome)/firebug(火狐插件),你会看到所有数据加载后,有一个不关闭的请求-它保持打开。

当你有一个网站,并且你想要连续获取数据时,你可以使用几种技术来实现:

它保持打开状态,并在需要时将数据刷新到套接字(到浏览器)。TCP连接保持打开状态。当连接超时时,您可以重新打开它。

您发布的网站使用第二种方法-当它检测到对该页面的POST请求时,它会保持连接打开并持续转储数据。您需要做的是向该页面发出POST请求,您需要查看需要发送哪些参数(如果有)。如何发出请求并不重要,只要您发送了正确的参数即可。

您需要使用分隔符读取响应-可能每次他们想要处理数据时,他们都会发送\n或其他分隔符。

希望这能有所帮助。如果你发现你仍然不能解决这个问题,请告诉我,我将详细介绍技术细节。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7181076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档