现在有一个场景,数据库中有若干待爬数据的id号,爬虫程序先从库中取出一条id,待爬取完成该条数据后,删除库中对应的id,然后继续下一个。现在是单线程,爬取速度较慢,如果要改成多线程应该是什么逻辑呢?比如现在一个线程正在运作,库中的对应id还没有删除,另一个线程从库中取出的id还是同一条,这样爬取的数据就重复了,请问有什么好的解决办法吗?
现在有一个场景,数据库中有若干待爬数据的id号,爬虫程序先从库中取出一条id,待爬取完成该条数据后,删除库中对应的id,然后继续下一个。现在是单线程,爬取速度较慢,如果要改成多线程应该是什么逻辑呢?比如现在一个线程正在运作,库中的对应id还没有删除,另一个线程从库中取出的id还是同一条,这样爬取的数据就重复了,请问有什么好的解决办法吗?
5 回答4.8k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答2k 阅读
1 回答3.2k 阅读
可以先分页查出来(避免一次开过多线程),然后给查出来的每一条数据开一个线程去抓取,待该线程结束之后,删除对应ID的数据。