首页 > 编程语言 > 详细

为什么列表增量爬取要单线程?

时间:2015-07-02 17:55:33      阅读:295      评论:0      收藏:0      [点我收藏+]

适用于对数据同步要求高,每天的增量数据不太大的情况。

1、防止漏爬,单线程时刚爬完第1页有新数据产生,在爬第2页的时候首条数据已经爬过,出现重复而已,不会丢失;多线程时比如3个线程,每页10条分别为1-10,11-20,21-30,第3页被先爬取了,此时服务器新增了一条,另一个线程刚好抓取第2页,原来的第20条数据被顶到第3页了,可第3页已经爬过了,这样就漏掉了一条数据。

2、增量停止,既然是增量爬,就得知道什么时候停止,比如根据时间、记录数等,就是得知道上次爬到哪了,如果列表没有规律那就瞎了,多线程的时候这个停止条件有一个线程达到了,其他线程得到通知的时候可能已经做了很多无用工作,重复爬了一堆页面;

3、列表并发,单线程爬时不用考虑,不能一个线程刚爬了第1页,别的线程又爬一遍;

4、请求频率,服务器可能对同一ip请求翻页的频率有限制,多线程控制起来费点劲;


为什么列表增量爬取要单线程?

原文:http://my.oschina.net/h2do/blog/473620

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!