Requests方法 -- 重定向操作

Teachertao 2019-07-07 原文

Requests方法 — 重定向操作

一、重定向
1. (Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置,从地址A跳转到地址 B 了。
2.重定向状态码:
–301 redirect: 301 代表永久性转移(Permanently Moved)
–302 redirect: 302 代表暂时性转移(Temporarily Moved )
3.举个简单的场景案例,先登录博客园打开我的博客首页,进我的随笔编辑界面,记住这个
地址:https://i.cnblogs.com/EditPosts.aspx?opt=1
4.退出博客园登录,把刚才我的随笔这个地址输入浏览器回车,抓包会看到这个请求状态码是 302,浏览器地址栏瞬间刷新跳到登录首页去了

 

二、禁止重定向(allow_redirects )
1.用 get 方法请求:https://i.cnblogs.com/EditPosts.aspx?opt=1
2.打印状态码是 200,这是因为 requets 库自动处理了重定向请求了,默认是allow_redirects=True 是启动重定向

3.自动处理重定向地址后,我们就获取不到重定向后的 url 了,就无法走下一步,这里我们可以设置一个参数禁止重定向:allow_redirects=False
(allow_redirects=True 是启动重定向),然后就可以看到 status_code 是 302 了

三、获取重定向后地址
1.在第一个请求后,服务器会下发一个新的请求链接,在 response 的 headers 里,如下抓包:Location

2.用脚本去获取 Location 地址

 

四、代码参数

import requests
#禁用安全请求警告
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

url = “https://i.cnblogs.com/EditPosts.aspx?opt=1”
headers = {
“User-Agent”: “Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36”
}
s = requests.Session()
#打开我的随笔
r = s.get(url,headers=headers,verify=False,allow_redirects=False)
# print(r.content.decode(“utf-8”))
#打印状态码,自动处理重定向请求
print(r.status_code)
#获取重定向后的地址
print(r.headers[“Location”])

发表于 2019-07-07 16:23 Teacher涛 阅读() 评论() 编辑 收藏

 

版权声明:本文为Teachertao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Teachertao/p/11146631.html

Requests方法 -- 重定向操作的更多相关文章

  1. 记一次 XxlRpcException:xxl-rpc request timeout at 超时问题

    事件起因 昨天有同事找我到,说他搭建的 XXL-JOB 任务调度系统不能工作了,调用总是出错(服务端返回 50 […]...

  2. Scheduler & Task & Worker & Thread & Request & Session & Connection of SQL Server

    MSSQL一直以来被人们认为简单、好学,但等到大家掌握了入门操作,深入理解起来又觉得非常的“拧巴”,尤其是对用 […]...

  3. request、response的setCharacterEncoding与response的setContentType

    一、request中的setCharacterEncoding方法:作用是用指定的编码集去覆盖request对 […]...

  4. Requests方法 — 项目实现自动发送邮件

    Requests方法 — 项目实现自动发送邮件 """1.discover方法里面有三个参数:-c […]...

  5. Nodejs HTTP请求的超时处理(Nodejs HTTP Client Request Timeout Handle)

    问题 Nodejs原生的http.request 方法是不支持设置超时参数的,而网络请求经常会遇到超时的情况, […]...

  6. scrapy参数meta传递item的用法,结合deepcopy来理解

    scrapy.Request(url[,callback,method=”GET”,h […]...

  7. nodejs请求库request(一)

    一、request以及request-promise简单介绍request以及request-promise是服务端发起请求的工具包。下面是一些基本用法(2种用法类似)1、默认get请求var request = require('re...

  8. nginx 解决400 bad request 的方法(转载)

    nginx的400错误比较难查找原因,因为此错误并不是每次都会出现的,另外,出现错误的时候,通常在浏览器和日志 […]...

随机推荐

  1. 顺序结构程序设计举例(初学者)

    例:输入三角形的三边长,求三角形面积。 已知三角形的三边长a,b,c则该三角形的面积公式为:area=√s(s […]...

  2. postgresql spi开发笔记

      #include "postgres.h" #include "fmgr.h" #include < […]...

  3. 普通粒子群算法和优化方法

    粒子群优化(PSO, particle swarm optimization) 是由Kennedy和Eberh […]...

  4. WebSphere在Linux下的安装过程 – preftest

    WebSphere在Linux下的安装过程 PrefTest工作室 张林 实践作品   Guideline: […]...

  5. 新版FPC摄像头测评 OV7725 OV7670 OV9650 OV9655 OV5640 OV5642 OV2640 OV3640 MT9D112

    新版FPC摄像头测评 OV7725 OV7670 OV9650 OV9655 OV5640 OV5642 OV […]...

  6. Mac OS X中配置Apache

    我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境。 启动Apache 设置虚拟主机   […]...

  7. ARP防火墙绑定网关MAC地址预防ARP攻击和P2P终结者

    【故障原理】  要了解故障原理,我们先来了解一下ARP协议。  在局域网中,通过ARP协议来完成IP地址转换为 […]...

  8. 性能测试如何计算设置并发数 – -有风来

    性能测试如何计算设置并发数 方法论-1: 同时在线用户数:平均并发数:并发用户数峰值:     在实际的性能测 […]...

展开目录

目录导航