python request.get 确实形成了正确的 url
python request.get does form the right url
我尝试使用 python 请求发送 GET 请求。但是,我发现 request.get() 形成的 url 不符合文档。
这是一个例子:
import requests
root_web_address = 'http://www.amazon.com'
action_address = '/s/ref=nb_sb_noss'
get_url = root_web_address + action_address
input_1_value_unicode = unicode('search-alias=aps', 'utf-8')
input_2_value_unicode = unicode('asics', 'utf-8')
get_parameters = {'url':input_1_value_unicode, 'field-keywords':input_2_value_unicode}
r = requests.get(get_url, params = get_parameters)
print r.url
预期的 URL 应该是:
http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=asics
然而,打印 r.url 给我:
http://www.amazon.com/s?ie=UTF8&page=1&rh=i%3Aaps%2Ck%3Aasics
为什么?
这里的requests.get
其实就是301重定向。并且响应对象的 url
属性 包含最后重定向的 url,因此 url 被打印。
对于中级 url 你可以做 -
print r.history[0].url
对于发送请求时使用的url,你应该做 -
print r.request.url
查看以下文档以获取更多信息 -
我尝试使用 python 请求发送 GET 请求。但是,我发现 request.get() 形成的 url 不符合文档。
这是一个例子:
import requests
root_web_address = 'http://www.amazon.com'
action_address = '/s/ref=nb_sb_noss'
get_url = root_web_address + action_address
input_1_value_unicode = unicode('search-alias=aps', 'utf-8')
input_2_value_unicode = unicode('asics', 'utf-8')
get_parameters = {'url':input_1_value_unicode, 'field-keywords':input_2_value_unicode}
r = requests.get(get_url, params = get_parameters)
print r.url
预期的 URL 应该是:
http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=asics
然而,打印 r.url 给我:
http://www.amazon.com/s?ie=UTF8&page=1&rh=i%3Aaps%2Ck%3Aasics
为什么?
这里的requests.get
其实就是301重定向。并且响应对象的 url
属性 包含最后重定向的 url,因此 url 被打印。
对于中级 url 你可以做 -
print r.history[0].url
对于发送请求时使用的url,你应该做 -
print r.request.url
查看以下文档以获取更多信息 -