python爬虫解决网页重定向问题
来源:互联网 发布:阿里云域名访问网站 编辑:程序博客网 时间:2024/05/19 04:28
笔者使用python2.7+requests编写爬虫,以下问题针对此情况讨论。
笔者编写的搜索引擎爬虫在爬取页面时遇到了网页被重定向的情况,所谓重定向(Redirect)就是通过各种方法(本文提到的为3种)将各种网络请求重新转到其它位置(URL)。每个网站主页是网站资源的入口,当重定向发生在网站主页时,如果不能正确处理就很有可能会错失这整个网站的内容。
笔者编写的爬虫在爬取网页时遇到了三种重定向的情况。
1.服务器端重定向,在服务器端完成,一般来说爬虫可以自适应,是不需要特别处理的,如响应代码301(永久重定向)、302(暂时重定向)等。具体来说,可以通过requests请求得到的response对象中的url、status_code两个属性来判断。当status_code为301、302或其他代表重定向的代码时,表示原请求被重定向;当response对象的url属性与发送请求时的链接不一致时,也说明了原请求被重定向且已经自动处理。
2.meta refresh,即网页中的<meta>标签声明了网页重定向的链接,这种重定向由浏览器完成,需要编写代码进行处理。例如,某一重定向如下面的html代码第三行中的注释所示,浏览器能够自动跳转,但爬虫只能得到跳转前的页面,不能自动跳转。
解决办法是通过得到跳转前的页面源码,从中提取出重定向url信息(上述代码第三行中的url属性值)。一个具体的操作:①使用xpath('//meta[@http-equiv="refresh" and @content]/@content')提取出content的值 ②使用正则表达式提取出重定向的url值。3.js 重定向,通过JavaScript代码形式进行重定向。如下面JavaScript代码
对于这种方式的跳转,由于可以实现该功能的JavaScript语句有多种形式,不能再使用正则表达式提取url,只能考虑加载JavaScript代码来进行解决。阅读全文
0 0
- python爬虫解决网页重定向问题
- python爬虫解决网页重定向问题
- 爬虫解决网页重定向问题
- python爬虫<解决URL被重定向无法抓取到数据问题>
- python urllib2 解决重定向问题
- 解决网页重定向带来的无法返回的问题
- asp网页重定向问题
- 解决dns劫持,网页重定向114
- URLConnection实现爬虫(解决重定向、设置cookie才能抓取页面等问题)
- larbin的使用心得 重构成定向网页爬虫
- 5.15 ruby爬虫事件 (解决代理,重定向)
- 定向网页爬虫经验总结
- cookie重定向问题的解决!
- ICMP重定向问题的解决
- SpyHunter解决Chrome重定向searchinterneat问题
- python urllib2处理重定向的问题
- python 调用smtplib输出重定向问题
- 处理重定向网页
- 51Nod 1068 Bash游戏 V3 找规律
- 关于ubuntu16.04编译2进制文件时,出现“加载共享库时出错”错误的解决
- oracle--13.管理
- Mobx 的一些基本概念
- Mysql--其他用法
- python爬虫解决网页重定向问题
- js的深拷贝和浅拷贝
- 修改android N 的Launcher3桌面显示的行数列数
- 架构与内核
- python之socket
- 内嵌汇编
- linux 查看所有打开so档的进程
- 人群密度估计--Learning a perspective-embedded deconvolution network for crowd counting
- vue爬坑——vee-validate的使用