繁体   English   中英

导致100%CPU使用率飙升的Python GET请求

[英]Python GET Requests causing 100% CPU Usage Spike

我正在使用python请求库(版本2.4.1)执行简单的get请求,下面是代码,这里没什么花哨的地方。 在大多数网站上都没有问题。 但是在某些网站上,尤其是在一个网站www.pricegrabber.com上,我遇到了100%的CPU使用率,并且代码始终不会超出get请求的范围。 不会发生超时,什么也不会发生,只是一个巨大的CPU使用率峰值,而且永远不会停止。

import requests
url = 'http://www.pricegrabber.com'
r = requests.get(url, timeout=(1, 1))
print 'SUCESS'
print r

使用python 2.7(“请求”库的最新稳定版本)并启用此答案中所示的日志记录,表明HTTP请求卡在了重定向循环中。

INFO:requests.packages.urllib3.connectionpool:启动新的HTTP连接(1):www.pricegrabber.com
调试:requests.packages.urllib3.connectionpool:“ GET / HTTP / 1.1” 301 20
调试:requests.packages.urllib3.connectionpool:“ GET /index.php/ut=43bb2597a77557f5 HTTP / 1.1” 301 20
调试:requests.packages.urllib3.connectionpool:“ GET /?ut = 43bb2597a77557f5 HTTP / 1.1” 301 20
调试:requests.packages.urllib3.connectionpool:“ GET /?ut = 43bb2597a77557f5 HTTP / 1.1” 301 20
调试:requests.packages.urllib3.connectionpool:“ GET /?ut = 43bb2597a77557f5 HTTP / 1.1” 301 20

...

这将继续直到:

request.exceptions.TooManyRedirects:超过30个重定向。

我用来发现这一点的代码:

#!/usr/bin/env python

import logging
import requests

logging.basicConfig(level=logging.DEBUG)

url = 'http://www.pricegrabber.com'
r = requests.get(url, timeout=(1, 1))

print 'SUCCESS'
print r

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM