Python接口-重定向

来源:互联网 发布:软件评估报告模版 编辑:程序博客网 时间:2024/05/29 10:03

什么是重定向

简单的理解:打开一个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 -*-
import requests

r = requests.get('http://i.baidu.com/', allow_redirects=False)
print(r.url)
print(r.status_code)
print(r.headers)
print(r.headers["location"])

原创粉丝点击