对于SEO优化来说最讨厌的就是抄袭行为,而爬虫技术则是抄袭手段的升级版,通过一个规则去全网爬取内容进行发布。将抄袭实现了自动化,各个站点面对这种行为也是无可奈何。
防爬虫的几种方法
User-Agent屏蔽
User-Agent也就是http请求头,当客户端访问的时候,服务器就可以接收到访问者的User-Agent。我们可以通过设置屏蔽常见的爬虫的User-Agent名,比如python、robots等。
但是这种方法的弊端很明显首先爬虫的User-Agent可以说是各式各样,只能发现了去屏蔽。并且如果是处于恶意爬取为目的的,基本上会把User-Agent伪装成浏览器,很难去发现。
IP访问频次限制
通过检测ip请求的频次来限制访问,当爬虫进行爬取的时候会在短时间内,在同一个IP下频繁抓取不同的页面。我们可以设置一个阈值,同一个IP在多少时间内访问超过多少个页面就屏蔽当前IP或者通过验证码来验证是否是正常访问。
这种方法的弊端就是,如果采用多个IP并且降低抓取的速度就可以绕过这个防御机制。
机智应对爬虫
想要高准确度识别人和爬虫就要首先找到两者最大的差异;一个明显的差异就是人永远只会去访问眼睛能够看见的东西,而爬虫只要去源码里有的网址都会去访问。
因此我们可以使用一个img标签实现精准的爬虫识别,<a href="防御地址"><img src="图片地址" style="height:1px;width:1px;"></a>。我们可以使用一个1个像素点图片,放在导航栏或者网站页面,颜色就融于这个环境,并且放在角落边;这样人眼首先看不到这张图片,其次非常的小根本不可能点击到<a>标签,不会触发防御地址。
然而爬虫则会去抓取页面的所有链接,当然我们不一定必须使用img标签,我们只要放下这种类似的陷阱,一但某个ip触发这个防御地址,就直接秒封当前ip。
特点注意事项
搜索引擎蜘蛛的放开,搜索引擎蜘蛛本质上也是爬虫,用上述的方法的时候都要谨慎的处理。需要做好搜索引擎蜘蛛的鉴别,千万不要把搜索蜘蛛也屏蔽了。
我们可以通过设置白名单,将允许访问的蜘蛛的ip端放入白名单不做屏蔽,千万不要通过User-Agent中蜘蛛的UA名来识别,太容易伪造。不过这种方法的问题就是如果搜索引擎增加新的蜘蛛IP段的时候会误伤。
因此对于,触发机制的User-Agent是搜索引擎蜘蛛的时候,我们需要去执行nslookup反查这个ip看它解析到哪里来鉴别是其真实性。
如果站点的规模很大,有一定知名度实力,对于造成了一个的损失。那么就直接保留日志证据,请对方吃牢饭。