首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python接口自动化-5-重定向

什么是重定向

简单的理解:打开一个URL跳转到另外个URL了,例如我们复制登录后地址到浏览器中打开,会跳转到登录页面,这既重定向。

常用的重定向方式有:301 redirect、302 redirect与meta fresh。

--301 redirect::301 代表永久性转移(Permanently Moved)

--302 redirect::302 代表暂时性转移(Temporarily Moved )

--meta fresh:其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之内),会被判断为spam。

默认情况下,除了 HEAD, Requests 会自动处理所有重定向。

可以使用响应对象的 history 方法来追踪重定向

来看个例子

登录后百度的地址:http://i.baidu.com/

返回了200,是因为requests 默认开启了重定向,地址指向:http://i.baidu.com/welcome

禁用重定向

如果你使用的是GET、OPTIONS、POST、PUT、PATCH 或者 DELETE,那么你可以通过 allow_redirects 参数禁用重定向处理:allow_redirects=False

返回302

获取未被重定向的地址

在设置成allow_redirects=False 后,我们打印出返回的response的headers中location地址

示例代码

# -*- coding:utf-8 -*-

importrequests

r = requests.get('http://i.baidu.com/',allow_redirects=False)

print(r.url)

print(r.status_code)

print(r.headers)

print(r.headers["location"])

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171221G0WHON00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券