关于使用协程(asyncio+aiohttp)爬虫的疑惑

2018-05-22 18:44:06 +08:00
 frank065
由于需要爬取大量数据,所以采用 代理+协程(asyncio+aiohttp) 的方式爬虫获取数据。爬的时候有两点疑惑:
1. 协程的数量有上限吗?我已经把协程数量调到 300 了,但是服务器内存也没有显著增高。大家一般设置多少个协程爬取数据?(被爬的网站是个常用的大厂,肯定不会被我搞崩掉。我知道不节制的爬虫是不道德的,只是好奇协程数量可以到多大)
2. 爬虫的速度还不错,但是在总是会在协程结束前的最后几个待爬取网页卡住等很长时间才能抓到,这种情况正常吗?
2075 次点击
所在节点    Python
3 条回复
lieh222
2018-05-23 09:05:12 +08:00
内存开销主要就是 response 和 socket 吧,response 大小不确定,socket 估计 1G 内存能开将近 100 万个吧
wwwd0g
2018-05-25 07:54:24 +08:00
超时分链接超时和读取超时,有的网站你访问的时候直接给你一个超长时间的读取...
rim99
2018-05-30 22:33:43 +08:00
协程的开销是函数级的,很小

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/456910

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX