2015-11-03 79 views
2

我的Python版本是2.7,並且運行在Ubuntu機器上。我正嘗試使用請求通過代理服務器獲取某個頁面,但它對具有完整路徑的網址無效。這裏是一個例子來顯示這個問題,Python請求模塊不適用於路徑爲url的URL

In [30]: proxies 
Out[30]: {'http': 'http://webproxyserver.info:80'} 

In [31]: url = 'http://api.mongodb.org/' 

In [32]: r = requests.get(url,proxies = proxies) 

In [33]: r.status_code 
Out[33]: 200 

In [34]: url_1 = 'http://api.mongodb.org/python' 

In [35]: r = requests.get(url_1,proxies = proxies) 

In [36]: r.status_code 
Out[36]: 404 

我不確定這是否是代理的問題?或者我的Python代碼有問題。它看起來像主域的代理唯一字(沒有任何路徑)。

感謝您的任何信息。

---更新於05/11 我剛剛意識到代理服務器根本不起作用。我從proxy4free獲得了代理服務器,看起來他們不是真正的代理服務器,他們是一些像瀏覽器一樣工作的網站。

我已經嘗試了另一個真正的代理服務器,並且代碼都很好執行。感謝您的所有信息。

+0

拋出的代碼看起來不錯,以我 – Illusionist

回答

0

儘管名稱不同,但webproxyserver.info不會在該位置運行http代理。如果您檢查r.text,則會看到代理不適用於任何地址,無論是否有路徑。

+0

是的,你是正確的。代理服務器URL根本不起作用。 –

1

看起來像什麼是錯與代理服務器,我認爲它不能夠處理302通過http://api.mongodb.org/python

$export http_proxy=              
$curl -s -w '%{http_code}\n' 'http://api.mongodb.org/' -o /dev/null  
200 
$curl -s -w '%{http_code}\n' 'http://api.mongodb.org/python' -o /dev/null 
302 
$export http_proxy='http://webproxyserver.info:80'      
$curl -s -w '%{http_code}\n' 'http://api.mongodb.org/' -o /dev/null  
200 
$curl -s -w '%{http_code}\n' 'http://api.mongodb.org/python' -o /dev/null 
404