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
    评论
尚码学院是一家针对编程教育的机构,提供了丰富的培训课程和项目实战经验。 Python是一门流行的编程语言,而RequestPython中的一个非常重要的第三方库,用于发送HTTP请求和处理响应。通过使用Request库,我们能够更加方便地与Web进行交互,例如获取网页内容、发送POST请求等。 而Pytest是Python中的一个测试框架,它提供了丰富的功能和方法来方便地编写、组织和运行测试用例。使用Pytest可以快速编写可靠的单元测试和集成测试,并提供了友好的断言方式和丰富的插件系统。 在尚码学院中,我们会教授学生如何使用Request和Pytest进行接口测试和自动化测试。通过使用Request库,我们可以发送各种类型的HTTP请求,并对响应进行各种处理和验证。而Pytest则帮助我们对接口进行更加严谨和可靠的测试,确保接口的正确性和稳定性。 在学习过程中,我们会教会学生如何使用Request库发送GET、POST、PUT、DELETE等请求,并学习如何处理参数、请求头、响应验证等。同时,我们还会教授学生如何使用Pytest编写测试用例、组织测试套件,并学习如何使用断言和插件来增强测试的能力。 总而言之,尚码学院的Python Request Pytest课程能够帮助学生掌握接口测试和自动化测试的基本技能,并培养他们在实战项目中使用Request和Pytest进行测试的能力。这将为他们今后在软件开发和测试行业中的职业发展带来巨大的帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值