始终只有一个爬虫在工作,请问原因
from gevent import monkey
monkey.patch_all()
from queue import Queue
import gevent
def fun(i,n):
print(f'第{i}个爬虫,执行任务{n}')
def crawler(i):
while not work.empty():
n = work.get_nowait()
fohttps://img-mid.csdnimg.cn/release/static/image/mid/ask/31020087987615.png "#left")
r m in range(3):
try:
fun(i,n)
break
except Exception as e:
print(e)
work = Queue()
for i in range(50):
work.put_nowait(i)
tasks = []
for i in range(5):
task = gevent.spawn(crawler,i)
tasks.append(task)
gevent.joinall(tasks)
看看你的系统的线程的模式,是不是阻塞了。
参考GPT和自己的思路:
可能是由于代码中只实例化了一个爬虫对象,导致始终只有一个爬虫在工作。如果需要多个爬虫同时工作,需要实例化多个爬虫对象,每个对象分别负责一个任务。另外,如果爬虫需要处理大量数据,可以考虑使用分布式爬虫技术,将任务分发到多个节点上运行,从而提高爬虫效率。