我正在尝试使用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()
?
答案 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]>]
尽管您应注意不要让太多请求同时淹没服务器