码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-07-02 17:57:20      阅读:127      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!