request.get()执行需要花费很长时间

时间:2019-08-31 07:45:54

标签: 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()

1 个答案:

答案 0 :(得分:0)

您的等待时间可能不取决于您,而取决于服务器端!

如果您有成千上万的请求,最好的方法是使用异步请求。您可以使用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]>]

尽管您应注意不要让太多请求同时淹没服务器