首页 新闻 会员 周边

高速采集网页数据

0
悬赏园豆:80 [已关闭问题] 关闭于 2013-07-25 18:46

网页上有一些数据。数据格式如下:

A[data],B[data],C[data],time.

这些数据,会实时的更新,有时候,一秒更新三五次,有时候,三五分钟才更新一次。

我通过编写代码,采集网页上面的数据,我真实的想法是每秒下载10次页面,这样就能保证即使每秒更新三五次,也不会漏掉。

后来发现,每秒采集10次,会被服务器断开,然后三秒的恢复时间,这三秒就导致数据没能采集到。

 

因为每条数据都 带有time字段的,所以,多线程下面,如果采集的乱序后,旧时间的数据就不能要了。

 

因为采集到的数据比较实时,我也要尽快的处理,所以,尽量不要延迟。

 

求问解决思路。

 

对方是一个TOMCAT,然后实时的更新网页内容。

我要做的就是把他更新的内容都采集过来。

 

谢谢了。

还有其他的回答吗?

问题补充:

博客园的提高悬赏功能好像有问题。

不能加分。

硬盘很大的主页 硬盘很大 | 初学一级 | 园豆:16
提问于:2013-07-19 16:41
< >
分享
所有回答(6)
1

在WinForm程序里用一个WebBrowser打开这个页面,然后监控页面上对应元素的值。

天边彩云 | 园豆:629 (小虾三级) | 2013-07-19 16:47

这个方法适合普通的采集,如果想一秒采十次,持续24小时不间断,做不到的。

支持(0) 反对(0) 硬盘很大 | 园豆:16 (初学一级) | 2013-07-19 16:48

@硬盘很大: 一秒更新三五次一般用的是Ajax的方式实现。你不能高频率的去获取整个页面,那样必然被服务器按CC攻击过滤掉。用WebBrowser和你正常浏览一样,监控HTMLElement的值,不是分析整个页面的html文本。

支持(0) 反对(0) 天边彩云 | 园豆:629 (小虾三级) | 2013-07-19 16:53

@天边彩云: 服务器端是使用把数据库里的数据读出来,然后原样显示出来。

查看源码,看到的是纯文本的数据,没有HTML标签在里面的。

支持(0) 反对(0) 硬盘很大 | 园豆:16 (初学一级) | 2013-07-22 08:57

@天边彩云: 而且你说的Webbrowser来正常浏览,这个正常,只不过是发送的POST或者GET数据,然后获得网页内容。我使用Libcurl库的时候也是发送的正常数据,这个跟WebBrowser有区别吗?我查看过数据发送的内容,没有区别的。所以,我想,应该跟这个方面关系不大。

服务器定时断开我的高频率连接,应该是根据某种条件,比如说:每秒连接次数。

但是,我使用多线程的时候,可以减小数据的丢失,所以,应该不是根据IP的,可能是根据,IP+端口两个条件来判断的。目前还不确定是根据什么条件来断开我的连接的。

 

谢谢你的回复。

支持(0) 反对(0) 硬盘很大 | 园豆:16 (初学一级) | 2013-07-22 09:00

@硬盘很大: 用WebBrowser不是只为了GET数据过来,GET数据的话用HttpRequest就行了。如果你正常用浏览器访问能看到所有数据的话(比如页面上的数据不断自动刷新)用这种方法就能获取到所有数据;否则,只能考虑楼下代理的方法了。

支持(0) 反对(0) 天边彩云 | 园豆:629 (小虾三级) | 2013-07-22 10:15
1

可以靠率用代理吧。首先收集一批代理IP地址。然后每次采集随机指定一个代理地址。

寒风吹过 | 园豆:149 (初学一级) | 2013-07-20 14:53

这个要靠高可靠性,第一不能丢数据,第二速度快。

找些代理,这个不太靠谱吧。

支持(0) 反对(0) 硬盘很大 | 园豆:16 (初学一级) | 2013-07-20 23:38
1

我试试。对这个比较感兴趣。我qq:13604023002

忍者软件 | 园豆:283 (菜鸟二级) | 2013-07-20 15:10

加你QQ了

支持(0) 反对(0) 硬盘很大 | 园豆:16 (初学一级) | 2013-07-20 23:38
-4
myqq15512002 | 园豆:206 (菜鸟二级) | 2013-07-21 17:26

这管SEO什么事。

我只是采集数据而已。

支持(0) 反对(0) 硬盘很大 | 园豆:16 (初学一级) | 2013-07-21 21:45
0

网页上做实时性的操作很难。你的问题一个程序跑肯定无论怎么做都有问题,最佳的是N台机器一起跑。

陈卓杰 | 园豆:207 (菜鸟二级) | 2013-07-24 16:42
0

目前还没找到解决办法。在思考。。。。

硬盘很大 | 园豆:16 (初学一级) | 2013-07-25 18:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册