开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 470|回复: 4
收起左侧

[python] python关于网页重定向,怎么获取到重定向前的内容!

[复制链接]
结帖率:0% (0/2)
发表于 2023-6-16 14:22:36 | 显示全部楼层 |阅读模式   四川省绵阳市
50精币
如题
现在有两个网址。
访问网址1直接就跳转到网址2。
在不使用allow_redirects=False的情况下,直接获取到网址2的内容。

在使用的情况下
获取到的网页内容是(move to网址2)

我想请问一下,有什么方法可以获取到网址1的内容?

或者说,有没有可能,网址1的内容完全被删除,不给任何响应?如果是这种情况,我应该怎么检测网页内容是否被完全删除。


跪求大神!收下我的膝盖!



回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (1/1)

签到天数: 22 天

发表于 2023-6-16 14:27:04 | 显示全部楼层   河南省郑州市
001.png

重定向 就是返回的请求头的  Location 就是要跳转的地址
回复

使用道具 举报

结帖率:54% (7/13)

签到天数: 25 天

发表于 2023-6-16 14:49:11 | 显示全部楼层   浙江省嘉兴市
[Python] 纯文本查看 复制代码
import requests
url = '网址'
response = requests.get(url, allow_redirects=False)
if response.is_redirect:
    content = response.content
    redirect_url = response.headers['Location']
    response = requests.get(redirect_url)
else:

requests.get() 方法用于发送 GET 请求。
allow_redirects=False 参数表示禁止自动重定向。
如果响应对象的 is_redirect 属性为 True,则表示该响应是一个重定向响应。
此时,可以从响应对象中获取重定向前的内容和重定向后的地址,并再次发送请求,获取重定向后的内容。
如果响应对象的 is_redirect 属性为 False,则表示该响应是一个正常响应,可以直接处理响应内容。
需要注意的是,禁止自动重定向可能会导致一些问题,例如无限重定向或者缺少必要的 Cookie 等。
如果遇到这些问题,可以尝试手动处理重定向,或者使用其他库来发送请求

这是一个例子,只可借鉴!
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

发表于 2023-6-16 15:02:40 | 显示全部楼层   重庆市重庆市
在不使用`allow_redirects=False`的情况下,直接获取到网址1的内容是无法实现的。当进行网址跳转时,默认行为是遵循重定向规则,直接获取到网址2的内容。

如果你想获取网址1的内容,一种方法是使用请求库或浏览器插件来手动发送HTTP请求,同时禁用自动重定向功能,然后分析返回的响应信息。例如,你可以使用Python的Requests库,在发送请求时设置`allow_redirects=False`参数,这样将不会自动跟随重定向,并且可以获取到网址1的内容。

至于网址1的内容是否被完全删除,可以通过以下几个方法进行检测:

1. 检查HTTP状态码:如果网页被完全删除,服务器通常会返回404 Not Found状态码或类似的状态码,表示请求的资源不存在。

2. 检查响应内容:发送请求后,检查返回的响应内容是否为空或包含错误信息。如果返回的内容为空或明确指示资源已删除,那么可以判断网页内容已被删除。

3. 监控网页变化:可以使用网络爬虫或监测工具定期监测网页的变化情况,如内容变化、标签结构变化等,如果发现网页内容长时间未更新或与预期有较大差异,可能意味着内容已被删除
回复

使用道具 举报

签到天数: 12 天

发表于 2023-7-5 14:58:29 | 显示全部楼层   河北省邢台市
在不使用allow_redirects=False的情况下,直接获取到网址2的内容,说明服务器会自动重定向到网址2。要获取网址1的内容,可以尝试以下方法:

使用requests库发送请求时,设置allow_redirects=False参数,这样服务器就不会自动重定向,可以获取到网址1的内容。示例代码如下:
复制代码
import requests

url1 = '网址1'
response = requests.get(url1, allow_redirects=False)

content = response.text
print(content)
如果网址1的内容完全被删除,服务器将会返回一个空的响应。可以通过检查响应的状态码来判断是否为空。常见的空响应状态码有404(页面不存在)或410(永久删除)。示例代码如下:
复制代码
import requests

url1 = '网址1'
response = requests.get(url1)

if response.status_code == 404 or response.status_code == 410:
    print('网页内容已被删除')
else:
    content = response.text
    print(content)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表