我正在尝试使用 python 的请求库发出 GET
请求。我不想跳过请求,所以我认为超时对我没有帮助。
在我的浏览器中处理 URL 不会导致任何问题。当我通过 request.get()
函数解析 URL 时,处理时间超过一分钟。
start = time.time()
url = 'desired_url'
requests.get(url)
print(f'it took {time.time() - start} seconds to process the request')
这段代码给了我:
it took 76.72762107849121 seconds to process the request
我正在使用以下版本的请求:
requests==2.21.0
由于我想处理数千个请求,每个请求超过一分钟就太长了。
知道这里会发生什么吗?如何确保更快地处理我的 requests.get()
?
最佳答案
你的等待时间可能不取决于你,而是取决于服务器端!
如果您有数千个请求,最好的方法是使用异步请求。您可以使用grequests :
import grequests
urls = [
'http://www.heroku.com',
'http://python-tablib.org',
'http://httpbin.org',
'http://python-requests.org',
'http://fakedomain/',
'http://kennethreitz.com'
]
rs = (grequests.get(u) for u in urls)
grequests.map(rs)
输出:
[<Response [200]>, <Response [200]>, <Response [200]>, <Response [200]>, None, <Response [200]>]
不过你应该小心,不要同时用太多请求压垮服务器
关于python - requests.get() 的执行时间非常长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57736150/