网络爬虫(又称为网页蜘蛛,网络机器人)是按照一定的规则,自动地抓取互联网信息的程序或者脚本。
谷歌、百度等搜索引擎就是通过爬虫不断地抓取互联网网站信息汇总、索引后提供人们检索。很多个人网站、企业网站会花钱做SEO(搜索引擎优化),目的就是让他们的网页更快更精准的被搜索引擎的爬虫抓取,让网民通过搜索引擎可以检索到他们的网页信息。通常在网站的根目录,会存在robots.txt这个文件。
这个文件里会定义网站的哪些目录允许爬虫访问,哪些目录不允许爬虫访问。但是这个只是一个 君子协议 ,讲武德的爬虫会遵守,不讲武德的爬虫。。。。。。呵呵,根本就直接忽略这个文件。
下面我们通过具体的例子和场景来介绍一下不讲武德的爬虫们。
爬虫最爱光顾的前20个网站:
验证码策略
验证码是反爬虫最基本的策略,有许多种类型。
最简单的就是图片里字母与数字组合的 输入式验证码, 这种验证码也最容易被爬虫攻破,因为只要识别到图片里的字母和数字,就可以通过验证码的校验。通常此类验证码都会有背景噪音,以及字形变形,以增加机器识别的难度。
滑块验证码 会复杂一些,爬虫需要模拟人去拖动按钮,还要找到图形缺口的位置 。
在12306的开启了验证码后,确实防住了大量的爬虫(有时候连真人都防住了[笑哭]),记得当时有些媒体报道,抢票软件将不再好用。但是道高一尺魔高一丈,“扫码平台”雇佣了很多大爷大妈,在家没事就是帮助这些平台识别验证码,时间一长,12306网站所有的验证码图片基本都被识别了。爬虫可以轻而易举地通过验证码的校验。所以网站的验证码也需要经常更换[捂脸]。
通过User-Agent来控制访问
很多网站会创建user-agent白名单,只有属于正常范围的user-agent才允许访问。但是由于user-agent很容易伪造,所以爬虫程序可以轻易地越过此类验证。
IP限制
如果一个固定的ip在短暂的时间内,快速大量的访问一个网站,后台管理员可以编写IP限制,不让该IP继续访问。爬虫可以通过使用不同的代理来访问网站,以规避此限制。
数据加密
使用加密算法,网站前端对发送的请求部分字段进行加密,然后服务器端进行解密,如果解密不匹配,则认为是非法请求,不返回正确数据。由于是前端JS加密,所以制造爬虫的人如果分析JS代码,可能会找出算法规律,以模拟出正确请求。
字体映射、混淆、逆序
很多网站为了反爬虫,关键的文字数字信息采用图片或者逆序、混淆的方式来迷惑爬虫。
评论留言