Python请求url编码不起作用

时间:2012-05-30 11:14:42

标签: python http web-scraping python-requests

直接来自python请求示例是这个片段:

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。

1 个答案:

答案 0 :(得分:4)

网站只执行HTTP 302 - 重定向,其中requests跟随,因此您最终会使用与原始请求不同的网址。这不是错误,而是预期的行为。

如果您不想这样,可以在发送请求时添加allow_redirects=False关键字参数。

顺便说一句:使用inurl:...进行谷歌搜索可以快速显示您在这里谈论的网站,即使您删除了IP ...