Python - 使用Comet和HTTP流进行网页抓取

2 投票
3 回答
575 浏览
提问于 2025-04-17 00:15

我需要从 fxstreet 网站提取数据。我用火狐浏览器的火bug工具抓取了网页的HTML代码,发现这个网页使用了Comet和HTTP流式传输技术。

我想每秒更新一次字典里的数据,而不需要刷新页面。我之前用urllib.urlopen实现了这个功能,但每秒都得发一次请求。

有没有人知道从Comet和HTTP流式传输中提取数据的合适方法?谢谢!

3 个回答

0

我不是这方面的专家,但我知道Comet的工作方式是只有在接近请求的时间限制时,或者服务器上有变化时,才会响应请求。所以你可以发起Comet请求,并且可以假设在Comet请求返回之前,数据是没有变化的

简单来说,你可以发起Comet请求,并且把Comet请求返回的数据存储在一个表格里。然后通过另一个请求(这个请求可以每秒发送一次),来检查表格中是否有新添加的数据,如果有,就把这些数据返回。

这就是你所期待的吗?

0

只需要获取数据,然后在同一时刻重新创建查询,而不是等1秒钟。Comet的意思是服务器在有新数据可用之前不会回应你。

2

你可能想用 geventTornadoTwisted 来写一个异步的 HTTP 客户端,以便访问你的服务。其实,有很多项目是专门为使用 Twitter Streaming API 而做的,你可以参考一下这些项目:

撰写回答