python - requests.get() 的执行时间非常长

标签 python python-requests

我正在尝试使用 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/

相关文章:

python - 在 Django 中,如何将 Request.response 重新打包为 Django 响应?

python - HTTP API 的嵌套 GET 参数

python - Python无效语法...?

python - 将 NavigableString 转换为 unicode 字符串

python - numpy 需要 System Python 2.7 才能安装

python - 如何使用 Python 的请求模块上传非 utf-8 编码的文件?

python - 在请求 python 上捕获代理错误

python - 编写 Python POO。棉花糖或原生 Python。创建类的最佳方式是什么?

python - 使用 Django 将主键传递到下一页

python - 如何在 python 中编辑请求以添加 TLS 设置?