Python requests.get()的执行时间非常长
我试图使用python中的请求库发出一个Python requests.get()的执行时间非常长,python,python-requests,Python,Python Requests,我试图使用python中的请求库发出一个GET请求。我不想跳过这个请求,所以我认为暂停对我没有帮助 在我的浏览器中处理URL不会导致任何问题。当我通过request.get()函数解析URL时,需要花费一分钟的时间来处理 start=time.time() url='所需的url' requests.get(url) 打印(f'处理请求花费了{time.time()-start}秒') 这段代码给了我: it took 76.72762107849121 seconds to process
GET
请求。我不想跳过这个请求,所以我认为暂停对我没有帮助
在我的浏览器中处理URL不会导致任何问题。当我通过request.get()
函数解析URL时,需要花费一分钟的时间来处理
start=time.time()
url='所需的url'
requests.get(url)
打印(f'处理请求花费了{time.time()-start}秒')
这段代码给了我:
it took 76.72762107849121 seconds to process the request
我正在使用以下版本的请求:
requests==2.21.0
因为我想处理数千个请求,所以每个请求超过一分钟太长了
知道这里发生了什么吗?如何确保更快地处理我的
请求。get()
?您的等待时间可能不取决于您,而取决于服务器端
如果您有数千个请求,最好的方法是使用异步请求。您可以使用:
输出:
[<Response [200]>, <Response [200]>, <Response [200]>, <Response [200]>, None, <Response [200]>]
[,无,]
虽然您应该小心不要同时用太多的请求淹没服务器但
url
的所有者可能不喜欢python请求
,并且会给您xx秒的惩罚。@stovfl感谢您的回答。我怎样才能知道url
的所有者是否是这样的呢?我会用curl或postman试试这个url,看看你是否仍然有延迟。试着用Chrome或Firefox发送用户代理和GET请求<代码>头文件={'user-agent':'Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/76.0.3809.132 Safari/537.36}然后是请求。get(url,头文件=头文件)
你能提供url进行实验吗?OP说他们正在提出一个单独的请求,这在浏览器中速度很快,但使用请求需要72秒。get()
-因此服务器是否被淹没并不明显。不,但它确保1或1k个请求需要相同的时间,这是他的实际问题,事实上他有数千个请求,让我们等待他发布链接。他可能无法缩短python脚本的请求时间,因为有些站点更智能,但OP不会在意,因为数千个请求将在几分钟内完成(甚至比在每个url上使用请求
更快,响应时间也更长)。我的答案是解决他真正问题的办法
[<Response [200]>, <Response [200]>, <Response [200]>, <Response [200]>, None, <Response [200]>]