什么是假蜘蛛
搜索引擎爬虫我们称之为蜘蛛,假蜘蛛即伪装成搜索引擎的爬虫。目的就是掩人耳目的去爬取采集网站的内容。
普通的爬虫很容易被站点发现屏蔽,对于搜索引擎蜘蛛站点都是没什么警惕心,希望多来抓取可以有效增加收录量和速度。
如何鉴别假蜘蛛
网站日志会记录所有访问ip的请求头即user-agent,通过修改蜘蛛的请求头为搜索引擎公布的蜘蛛的UA名。
因此,我们光看日志是无法直接辨别真假蜘蛛的。大多数搜索引擎都是ip反查,比如我们通过windows电脑cmd中使用nslookp反查蜘蛛的ip能够获取到对应搜索引擎解析的为真蜘蛛,在这种方法下假蜘蛛无法遁形。
但是问题是如果不能事实鉴别假蜘蛛,内容被采集走了在屏蔽也失去了意义。
如何识别鉴别假蜘蛛
要最大程度的保护内容不被假蜘蛛爬取,我们就需要在后端程序中处理。对于假蜘蛛在第一次访问的时候进行ip的封禁。
我们就拿php为例,可以使用gethostbyaddr函数,可以实现nslookup同样的功能,返回的参数也是相同的。对于真蜘蛛就是返回对应ip解析到的域名,然后匹配下是否是我们允许的蜘蛛域。
$IP = $_SERVER['REMOTE_ADDR']; $hostname = gethostbyaddr($IP);
添加蜘蛛白名单
有些蜘蛛无法支持反查,我们可以把这类蜘蛛的ip段添加白名单,同时我们对于网站反查到的蜘蛛ip经过人工确定之后,也同样加入白名单。可以防止程序出错时误屏蔽蜘蛛,以及加快程序的响应速度。
原创保护防采集
对于其他的爬虫我们还是需要去检测同一个ip是否有大段时间大量访问的行为,对于异常ip我们可以使用验证码等方式验证,这也是基于我们拥有了通过ip鉴别蜘蛛的前提下,可以避免误伤搜索引擎的抓取任务。
采集只要你的内容可以显示就可以有办法采集,要想完全避免是不可能的,是双方之间的一场博弈。