首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python request.get确实形成了正确的url。

python request.get确实形成了正确的url。
EN

Stack Overflow用户
提问于 2015-09-14 07:33:54
回答 1查看 1.1K关注 0票数 0

我尝试使用python请求发送GET请求。但是,我发现由request.get()形成的url不跟随文档。

下面是一个示例:

代码语言:javascript
复制
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应该是:

代码语言:javascript
复制
http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=asics

然而,打印r.url给了我:

代码语言:javascript
复制
http://www.amazon.com/s?ie=UTF8&page=1&rh=i%3Aaps%2Ck%3Aasics

为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-14 07:40:58

这里的requests.get实际上是301号重定向。响应对象的url属性包含最后一个重定向的url,因此将打印url。

对于中间网址你可以做-

代码语言:javascript
复制
print r.history[0].url

对于发送请求时使用的url,你应该做-

代码语言:javascript
复制
print r.request.url

请查看以下文档以获得更多信息-

  1. 请求QuickStart
  2. requests.Response.url
  3. requests.Response.history
  4. requests.request.url
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32559406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档