爬虫自互联网诞生就一直存在着,经过不断的发展,特别是大数据受欢迎后,许多企业都运用爬虫来收集大量数据,通过数据分析获取有效信息,然而这些信息目标网站并不想让竞争对手获取到,或者是为了保护网站,设置了反爬机制,限制爬虫的采集,因此使用爬虫采集信息容易被封。
但有不能放弃采集信息,因此爬虫需要找到被封的原因,并突破限制才能继续的采集信息,下面请跟飞猪爬虫代理IP去了解一下爬虫被封的常见原因。
1.请求头没有修改
有些网站会封杀任何声称自己是爬虫的访问者。如果你不确定请求头的值怎样才算合适,就用你自己浏览器的请求头吧。
2.Cookie不合法
如果你已经登录网站却不能保持登录状态,或者网站上出现了其他的“登录状态”异常,请检查你的cookie。确认在加载每个页面时cookie都被正确调用,而且你的cookie在每次发起请求时都发送到了网站上。
3.JavaScript执行问题
如果你从网络服务器收到的页面是空白的,缺少信息,或其遇到他不符合你预期的情况(或者不是你在浏览器上看到的内容),有可能是因为网站创建页面的JavaScript执行有问题。
4.速度频繁
快速采集是一种恶习,会对网管的服务器造成沉重的负担,还会让你陷入违法境地,也是IP被网站列入黑名单的首要原因。给你的爬虫增加延迟,让它们在夜深人静的时候运行。切记:匆匆忙忙写程序或收集数据都是拙劣项目管理的表现;应该提前做好计划,避免临阵慌乱。
5.提交参数不对
如果你准备向网站提交表单或发出POST请求,记得检查一下页面的内容,看看你想提交的每个字段是不是都已经填好,而且格式也正确。用Chrome浏览器的网络面板(快捷键F12打开开发者控制台,然后点击“Network”即可看到)查看发送到网站的POST命令,确认你的每个参数都是正确的。
6.IP被识破
如果你在客户端遇到了HTTP错误,尤其是403禁止访问错误,这可能说明网站已经把你的IP当作机器人了,不再接受你的任何请求。你要么等待你的IP地址从网站黑名单里移除,要么就换个IP地址(可以使用代理IP,比如飞猪爬虫代理IP)。
爬虫为什么会被封的原因非常多,上文介绍了常见的几种,建议使用爬虫要尽可能的伪装自己的数据,除了IP不能伪装外。IP也可以使用飞猪爬虫代理IP,隐藏自己的真实IP,以此来突破IP的限制。另外要尽可能的降低采集速度,不给对方服务器来带太大的影响。