Python Web 抓取:请求与多线程请求?
Python Webscraping: grequests vs. mult-threaded requests?
我正在努力使我在 Python 中编写的网络抓取程序更快。
目前,我启动了一定数量的抓取线程,创建了一个包含我要抓取的 URL 列表的队列,然后让它们将条目出列以便抓取。
grequests 声明它是异步的,但我不确定除了触发多个线程(就像我正在做的那样)并在完成时使用 gevent 触发事件之外还有什么意思。
除了为每个作业创建一个线程之外,grequests 是否还能做任何事情?它在技术上 运行 比我上面概述的程序 更快 吗?
看看这个:
https://adl1995.github.io/a-comparison-of-response-times-using-urllib-grequests-and-asyncio.html
长话短说:
“使用 aiohttp
和 asyncio
似乎是最好的选择。它的响应时间比 grequests
少将近 50%。”
我正在努力使我在 Python 中编写的网络抓取程序更快。
目前,我启动了一定数量的抓取线程,创建了一个包含我要抓取的 URL 列表的队列,然后让它们将条目出列以便抓取。
grequests 声明它是异步的,但我不确定除了触发多个线程(就像我正在做的那样)并在完成时使用 gevent 触发事件之外还有什么意思。
除了为每个作业创建一个线程之外,grequests 是否还能做任何事情?它在技术上 运行 比我上面概述的程序 更快 吗?
看看这个:
https://adl1995.github.io/a-comparison-of-response-times-using-urllib-grequests-and-asyncio.html
长话短说:
“使用 aiohttp
和 asyncio
似乎是最好的选择。它的响应时间比 grequests
少将近 50%。”