直接来自 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。
最佳答案
该站点只是在此处执行 HTTP 302
重定向,随后是 requests
,因此您最终会获得与最初请求不同的 url。这不是错误,而是预期的行为。
如果您不想这样,您可以在发送请求时添加 allow_redirects=False
关键字参数。
顺便说一下:使用 inurl:...
进行谷歌搜索会很快显示您在这里谈论的是哪个网站,即使您删除了 ip...
关于Python 请求 url 编码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10815168/