请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师最近使用多进程爬虫,利用进程池pool(64)

刚开始爬还挺快,跑一段时间后,最后只剩下四五个进程再跑了,其他进程都卡住不动了,为什么。

正在回答 回答被采纳积分+3

1回答

小布_老师 2022-04-22 21:26:58

线程处理爬虫,一般都是卡请求。

请求的超时默认120秒,如果响应一直不回来,线程只会死等。

推荐线程+协程

0 回复 有任何疑惑可以回复我~
  • 提问者 慕慕7513118 #1
    最近有在用协程  但是任务量太多 会报错  ValueError: too many file descriptors in select()
        tasks = [main(url) for url in a[0:2000]]
        loop.run_until_complete(asyncio.wait(tasks))  任务量超过五百个url就报错
    回复 有任何疑惑可以回复我~ 2022-04-24 16:49:59
  • 是不是单loop添加太多任务了。
    你用多线程处理单loop吧
    回复 有任何疑惑可以回复我~ 2022-04-28 10:32:34
  • 或者多线程多loop
    回复 有任何疑惑可以回复我~ 2022-04-28 10:32:48
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信