我正在尝试让我用 Python 编写的网络爬虫更快。
目前,我启动了一定数量的抓取线程,创建一个包含我想要抓取的 URL 列表的队列,并让它们将条目出列,以便它们可以抓取。
grequests 声明它是异步的,但我不确定除了触发多个线程(就像我正在做的那样)和使用 gevent 在完成时触发事件之外,“完全”意味着什么。
除了为每个作业创建一个线程之外,grequests 还能做更多的事情吗?从技术上讲,它比我上面概述的程序运行得更快吗?
最佳答案
看看这个:
https://adl1995.github.io/a-comparison-of-response-times-using-urllib-grequests-and-asyncio.html
TL;博士:
“将 aiohttp
与 asyncio
结合使用似乎是最佳选择。它的响应时间比 grequests
缩短了近 50%。”
关于Python Web 抓取 : grequests vs. 多线程请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63419061/