python+request的重定向与追踪

本文介绍了HTTP中301和302重定向状态码的含义,301代表永久转移,302代表暂时转移。通过Python的requests库展示了如何处理重定向,包括默认情况下的200状态码响应,以及禁用重定向后获取302状态码的示例。同时,演示了如何获取重定向历史及最终URL。
摘要由CSDN通过智能技术生成

重定向的状态码

  • 301 redirect: 301 代表永久性转移(Permanently Moved)
  • 302 redirect: 302 代表暂时性转移(Temporarily Moved )

实例

请求: http://www.cninfo.com.cn/new/disclosure/detail?plate=szse&orgId=9900023797&stockCode=300424&announcementId=1208372407&announcementTime=2020-09-01%2019:28
会做一个 302 重定向,最终到一个 pdf 资源页。
在这里插入图片描述
默认启动重定向,返回的状态码是最后的 200:

import requests

first_link = '''http://www.cninfo.com.cn/new/disclosure/detail?plate=szse&orgId=9900023797&stockCode=300424&announcementId=1208372407&announcementTime=2020-09-01%2019:28'''
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}
resp = requests.get(first_link, headers=headers)
print(resp) 

禁用重定向之后,返回的状态码是 302:

import requests

first_link = '''http://www.cninfo.com.cn/new/disclosure/detail?plate=szse&orgId=9900023797&stockCode=300424&announcementId=1208372407&announcementTime=2020-09-01%2019:28'''
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}
resp = requests.get(first_link, headers=headers,
                    allow_redirects=False,
                    )
print(resp) 

查看重定向的历史,并且记录最终重定向到的 url:

import requests

first_link = '''http://www.cninfo.com.cn/new/disclosure/detail?plate=szse&orgId=9900023797&stockCode=300424&announcementId=1208372407&announcementTime=2020-09-01%2019:28'''
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}
resp = requests.get(first_link, headers=headers)
redit_list = resp.history
# redit_link = redit_list[0].headers["location"]
redit_link = redit_list[len(redit_list)-1].headers["location"]
print(redit_link) 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值