Requests 请求,有时候A会发生请求网址 B,但是网址B 没有直接给反馈,通知了网址C,网址C 给了 请求网址A 响应。 这就是重定向、
重定向:就是通过各种方法将各种网络请求重新定个方向转到其它位置,从地址A跳转到地址B了。
重定向状态码:301---临时重定向; 302 ---永久重定向;
有个博客园 中抓包到的请求,就是重定向。
url = https://i.cnblogs.com/EditPosts.aspx?opt=1
抓包如下:
python 中代码如下:
这个请求中的 关键是:
allow_redirects=True,requests 自动进行重定向处理; 这样,就无法查看进行重定向处理前 返回的headers 中location信息了。
要查看重定向处理前的URL,返回,需将 allow_redirects=False,requests 不进行重定向处理。代码如下:

可以捕捉到 响应 headers 中Location,到的新url。
代码如下:
urlB = "https://i.cnblogs.com/EditPosts.aspx?opt=1"
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0"}
s = requests.session()
logging.captureWarnings(True)
re = s.get(url=urlB,
headers=headers,
allow_redirects=True,
verify=False)
print(re.status_code)
or:re = s.get(url=urlB,
headers=headers,
allow_redirects=False,
verify=False)
print(re.status_code)
new_url = re.headers["Location"]
print(new_url)
故,遇到重定向URL时,如果希望 Requests 主动进行重定向处理:
allow_redirects=True,请求过去后,遇到重定向,将主动请求 重定向后的新url,并返回新URL的响应;
如果,不希望 进行处理,想捕捉 重定向后的URL,使用
allow_redirects=False,打印响应 headers 中的Location。
一般遇到重定向,不加 allow_redirects参数的话,Requests库默认 值为True,主动进行重定向后的请求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报