Python+requests重定向历史查看

一、什么是重定向

重定向就是网络请求被重新定个方向转到了其它位置

二、为什么要做重定向

网页重定向的情况一般有:网站调整(如网页目录结构变化)、网页地址改变、网页扩展名(.php、.html、.asp)的改变、当一个网站注册了多个域名的时候。这些情况下都需要进行网页的重定向。不做重定向的话就容易出现404错误(如访问网上提供的网页url经常报404错误,就是有可能url地址改变了但没有做重定向导致的。)

三、Python+requests重定向操作

1、重定向分:301 redirect—》永久性重定向、302 redirect—》暂时性重定向,比如下图的302永久性重定向
在这里插入图片描述

2、追踪重定向

import requests
url = ‘http://home.cnblogs.com/u/xswt/’
r = requests.get(url,params=None,headers={‘Content-Type’:‘application/json’})
print(r.history)#history追踪页面重定向历史
运行结果:

[<Response [301]>, <Response [302]>, <Response [302]>, <Response [302]>]
#可以看到该请求做了多次重定向
3、Python+requests获取重定向的url地址:

import requests
url = ‘http://home.cnblogs.com/u/xswt/’
r = requests.get(url,headers={“Content-Type”:“application/json”})
reditList = r.history#可以看出获取的是一个地址序列
print(f’获取重定向的历史记录:{reditList}’)
print(f’获取第一次重定向的headers头部信息:{reditList[0].headers}’)
print(f’获取重定向最终的url:{reditList[len(reditList)-1].headers[“location”]}’)

运行结果:
获取重定向的历史记录:[<Response [301]>, <Response [302]>, <Response [302]>, <Response [302]>]
获取第一次重定向的headers头部信息:{‘Date’: ‘Fri, 06 Sep 2019 06:53:05 GMT’, ‘Content-Length’: ‘0’, ‘Connection’: ‘keep-alive’, ‘Location’: ‘https://home.cnblogs.com/u/xswt/’}
获取重定向最终的url:https://account.cnblogs.com/signin?returnUrl=http%3a%2f%2fhome.cnblogs.com%2fu%2fxswt%2f
4、Python+requests重启和禁止重定向

‘’’
禁止重定向(all_redirects=False)
‘’’
import requests
url = ‘http://home.cnblogs.com/u/xswt/’
r = requests.get(url,headers={“Content-Type”:“application/json”},allow_redirects=False)
print(r.status_code)
print(r.text)
复制代码
运行结果:

301

‘’’
重启重定向
‘’’
import requests
url = ‘https://www.csdn.net/’
r = requests.get(url,headers={“Content-Type”:“application/json”},allow_redirects=True)
print(r.status_code)
print(r.text)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生而为虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值