2014-12-04 72 views
0

我正在使用python請求庫(版本2.4.1)執行一個簡單的get請求,代碼如下,在這裏沒有什麼奇怪的。在大多數網站上都沒有問題。但在某些網站上,特別是www.pricegrabber.com,我經歷了100%的CPU使用率,並且代碼永遠不會超過獲取請求的位置。沒有超時發生,沒有什麼,只是一個巨大的CPU使用率永遠不會停止。導致CPU使用率達到100%的Python GET請求Spike

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

回答

4

使用Python 2.7,該「要求」庫的最新穩定版本,並啓用日誌記錄爲shown in this answer表示HTTP請求被卡在重定向循環。

INFO:requests.packages.urllib3.connectionpool:啓動新的HTTP連接(1):www.pricegrabber.com
DEBUG:requests.packages.urllib3.connectionpool: 「GET/HTTP/1.1」 301 20
DEBUG:requests.packages.urllib3.connectionpool:「GET /index.php/ut=43bb2597a77557f5 HTTP/1.1」301 20
DEBUG:requests.packages.urllib3.connectionpool:「GET /?ut = 43bb2597a77557f5 HTTP/1.1 「301 20
DEBUG:requests.packages.urllib3.connectionpool:」GET /?ut = 43bb2597a77557f5 HTTP/1.1「301 20
DEBUG:requests.packages.urllib3.connectionpool:」GET /?ut = 43bb2 597a77557f5 HTTP/1.1" 301 20

...

這繼續一點,直到:

requests.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 
+0

我沒有得到例外。我只收到3個重定向,並且它停留在DEBUG上:requests.packages.urllib3.connectionpool:「GET /?ut = 324aba6b1a542668 HTTP/1.1」301 20 – digitaldavenyc 2014-12-04 17:54:01

+0

根據網站返回的信息,您的體驗可能會有所不同。你能找出你使用的是什麼版本的'請求'嗎? – 2014-12-04 17:55:45

+0

請求2.4.1。我要升級也許這個問題有一個補丁。 – digitaldavenyc 2014-12-04 17:57:18