适用于对数据同步要求高,每天的增量数据不太大的情况。
1、防止漏爬,单线程时刚爬完第1页有新数据产生,在爬第2页的时候首条数据已经爬过,出现重复而已,不会丢失;多线程时比如3个线程,每页10条分别为1-10,11-20,21-30,第3页被先爬取了,此时服务器新增了一条,另一个线程刚好抓取第2页,原来的第20条数据被顶到第3页了,可第3页已经爬过了,这样就漏掉了一条数据。
2、增量停止,既然是增量爬,就得知道什么时候停止,比如根据时间、记录数等,就是得知道上次爬到哪了,如果列表没有规律那就瞎了,多线程的时候这个停止条件有一个线程达到了,其他线程得到通知的时候可能已经做了很多无用工作,重复爬了一堆页面;
3、列表并发,单线程爬时不用考虑,不能一个线程刚爬了第1页,别的线程又爬一遍;
4、请求频率,服务器可能对同一ip请求翻页的频率有限制,多线程控制起来费点劲;
时间: 2024-11-05 10:41:39