http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 17225|回复: 11

[求助] 遇到多次302重定向的,如何获取最终的地址。

[复制链接]
发表于 2015-1-13 20:34:25 | 显示全部楼层 |阅读模式
本帖最后由 howzew 于 2015-1-13 20:50 编辑

遇到一个情况,访问A地址,自动302到B,然后自动到C,又自动到D,D的url自动带上了参数。
就是访问A的时候直接一路302到了D,当然,中间经过了B和C。
现在的问题是,因为我要取D的url里的参数,那么该如何获取这个D的url呢?
类库里的方法我试过,只能取一次302的地址,但是多次的没法取到最终的
难道要一次一次写?不是吧?
有啥好办法么?




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-1-13 22:35:57 | 显示全部楼层
有好办法。自己在类中处理。
发表于 2015-1-14 08:21:22 | 显示全部楼层
如果需要验证Cookie的自然是需要一次一次的取,如果不需要  Allowautoredirect = false,//是否根据301跳转     可选项   
直接将这个默认的参数设置为True就行了。
 楼主| 发表于 2015-1-14 08:48:55 | 显示全部楼层
本帖最后由 howzew 于 2015-1-14 08:50 编辑
站长苏飞 发表于 2015-1-14 08:21
如果需要验证Cookie的自然是需要一次一次的取,如果不需要  Allowautoredirect = false,//是否根据301跳转  ...

这个我倒是知道,但问题是,如果设置成true,那最后的location就取不到了啊,我又想自动跳转,又想取到最后的location,有啥办法?
发表于 2015-1-14 08:55:50 | 显示全部楼层
howzew 发表于 2015-1-14 08:48
这个我倒是知道,但问题是,如果设置成true,那最后的location就取不到了啊,我又想自动跳转,又想取到最 ...

给你留过言,可你不理我。
 楼主| 发表于 2015-1-14 09:02:04 | 显示全部楼层
cload 发表于 2015-1-14 08:55
给你留过言,可你不理我。

不好意思啊,手机上的,一直发不出去私信,我又给你发私信了
发表于 2015-1-14 09:30:41 | 显示全部楼层
你最后获取的URl就是最后跳转的location地址




发表于 2015-1-14 09:31:07 | 显示全部楼层
你想一下最后的URl怎么来,的不就是从最后一次location跳转的吗,那不前的URl自然就是最后的location了
 楼主| 发表于 2015-1-14 09:40:50 | 显示全部楼层
本帖最后由 howzew 于 2015-1-14 09:42 编辑
站长苏飞 发表于 2015-1-14 09:31
你想一下最后的URl怎么来,的不就是从最后一次location跳转的吗,那不前的URl自然就是最后的location了

可能是我没表达清楚
就是访问A地址,如果Allowautoredirect = false,那么获得Location B,接着访问Location B,得到Location C,接着访问Locaiton C,获得Location D,可以得到最终我要的url(就是D),但是缺点就是多次跳转要写多次代码,比较麻烦。

那么如果我设置Allowautoredirect = true,我可以直接从A跳转到D,但是取不到D的url了。

现在我想在Allowautoredirect = true的情况下,直接从A跳转到D,同时获取D的url。
发表于 2015-1-14 09:54:28 | 显示全部楼层
哦,我明白你的意思,在的我框架确实没有获取这个最后一次属性的方法,
你可以先这样取
  //获取最后访问的URl
            result.ResponseUri = response.ResponseUri.ToString();

这个参数ResponseUri我最近更新的时候就加上了。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-23 07:58

© 2014-2021

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