首页 > 代码库 > 爬虫:获取多次跳转后的页面url
爬虫:获取多次跳转后的页面url
案例:页面中的一个链接,审核元素得到的地址是“http://iphone.myzaker.com/l.php?l=54472e161bc8e0fd4a8b4573” ,点击之后页面自动跳转到另一个地址“
http://mp.weixin.qq.com/s?__biz=MjM5NjExNjI4MA==&mid=202695292&idx=1&sn=8638f15ba27381236641077a77d43e03&scene=4#wechat_redirect”。
wget 分析地址
apples-air:mzread apple$ wget http://iphone.myzaker.com/l.php?l=54472e161bc8e0fd4a8b4573--2014-10-23 17:27:17-- http://iphone.myzaker.com/l.php?l=54472e161bc8e0fd4a8b4573Resolving iphone.myzaker.com... 106.186.30.108Connecting to iphone.myzaker.com|106.186.30.108|:80... connected.HTTP request sent, awaiting response... 302 Moved TemporarilyLocation: http://mp.weixin.qq.com/s?__biz=MjM5NjExNjI4MA==&mid=202695292&idx=8&sn=f39c6c5dc2329e41eb58c71b53ba8a50&scene=4#wechat_redirect [following]--2014-10-23 17:27:19-- http://mp.weixin.qq.com/s?__biz=MjM5NjExNjI4MA==&mid=202695292&idx=8&sn=f39c6c5dc2329e41eb58c71b53ba8a50&scene=4Resolving mp.weixin.qq.com... 203.205.143.142Connecting to mp.weixin.qq.com|203.205.143.142|:80... connected.HTTP request sent, awaiting response... 200 OKLength: 42622 (42K) [text/html]
可以看到访问原地址之后,有一个302的跳转。
那么问题来了,怎么样获取到跳转之后的页面地址?
办法:利用方法Net::HTTP.get_response。
具体代码:
require ‘net/http‘ res=Net::HTTP.get_response(URI(‘http://iphone.myzaker.com/l.php?l=54472e161bc8e0fd4a8b4573‘)) res[‘location‘]=> "http://mp.weixin.qq.com/s__biz=MjM5NjExNjI4MA==&mid=202695292&idx=1&sn=8638f15ba27381236641077a77d43e03&scene=4#wechat_redirect"
这样就可以得到跳转之后页面的url。
爬虫:获取多次跳转后的页面url
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。