2012-05-30 51 views
1

的這個片段:Python的請求URL編碼不工作從蟒蛇的請求例子直接

payload = {'key1': 'value1', 'key2': 'value2'} 
r = requests.get("http://httpbin.org/get", params=payload) 
print r.url 
u'http://httpbin.org/get?key2=value2&key1=value1' 

但是,當我試圖從一個網站提取數據(使用請求0.13.0):

payload = {'one' : 'one', 'two' : 'two' } 
r = requests.get("http://[ip_removed]/clubs/pairs_results/personal.php", params=payload) 
print r.url 
http://[ip_removed]/clubs/pairs_results/ 

根本沒有正確編碼。想法?編輯: 看起來像網站發出302重定向。我該如何處理,以獲得我的瀏覽器將看到的相同的html。

+0

二代碼片段對我的作品....嘗試這樣做與您的本地IP(127.0.0.1)併發布實際示例? –

+0

您的服務器可能重定向嗎? –

回答

4

該網站只是做一個HTTP 302-這裏的requests如下所示,所以你最終會得到一個不同於最初請求的網址。這不是錯誤,而是預期的行爲。

如果您不想要,可以在發送請求時添加allow_redirects=False關鍵字參數。

順便說一句:谷歌搜索與快速inurl:...揭示你在這裏談論哪個網站,即使你刪除IP ...

+0

那麼,爲什麼當我手動編碼URL並將其放入瀏覽器時,我不會重定向?我如何獲得我的瀏覽器將獲得的相同html? – Daniel

+0

不知道,也許你還需要設置一些餅乾呢?使用一些檢查工具(如[HttpFox](https://addons.mozilla.org/de/firefox/addon/httpfox/))來查明實際發送到服務器的內容。 – mata

+2

無法幫助它,+1「與谷歌搜索inurl:...」 – aitchnyu