我们经常在网站日志中看到各种爬虫抓取记录,最常见的就是百度蜘蛛等搜索引擎,以百度为例,通常我们判断是否是百度蜘蛛抓取看用户代理字符串也就是User-Agent,但是User-Agent是可以模拟的,所以很多时候也会有虚假的模拟伪装成百度蜘蛛来抓取,这时候我们就需要学会分辨真伪。
首先是百度User-Agent代理字符串,百度官方公布的有如下User-Agent:
移动UA:Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,likeGecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0;+/search/spider.html)
PC UA:Mozilla/5.0 (compatible; Baiduspider/2.0;+/search/spider.html)
新增渲染UA:
移动UA:Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 likeMac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143Safari/601.1 (compatible; Baiduspider-render/2.0; +/search/spider.html)
PC UA:Mozilla/5.0 (compatible;Baiduspider-render/2.0; +/search/spider.html)
需要注意的是百度新增了一个移动的User-Agent,和一个PC的User-Agent。我们知道了百度蜘蛛的User-Agent,如何正确识别和判断某条抓取是否是真实的百度蜘蛛。
1、首选我们需要通过关键词找User-Agent中是否包含Baiduspider;
2、如果想区分移动和PC的蜘蛛的话,我们还需要在结果中再进行关键词过滤,移动端的User-Agent包含:Android 、iPhone、Mobile等三个中至少一个。
3、通过上述操作我们可以分辨出哪些抓取是百度蜘蛛抓取,但并不能分辨真伪。
1、验证百度蜘蛛真伪我们一般使用的是DNS反查IP的方式来进行判断,首选我们需要找到上述抓取记录中蜘蛛的IP。
2、以windows操作系统为例,开始运行中输入cmd 弹出窗口中输入 nslookup (上述IP地址),判断百度蜘蛛的真伪,真是百度蜘蛛结果中会返回以* 或*.baidu.jp 的格式命名hostname,如不包含则为假百度蜘蛛。
原创文章,如果对您有帮助请点关注。