标明访问者属性的User Agent是可以由软件进行修改的,所以有很多采集者为了防止自己被屏蔽,就把User Agent改为搜索引擎爬虫的特征,例如:
- googlebot:Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
- baiduspider:mozilla/5.0 (compatible; baiduspider/2.0; +http://www.baidu.com/search/spider.html)
为了验证来访者User Agent是否假冒的搜索引擎爬虫,可以用host反查IP对应的主机名,官方说明:
- Google:验证 Googlebot
- 百度:百度spider介绍
官方的说明肯定是没有错的,但我们在实际使用中也遇到一些问题:
- 不是每次host反查DNS都成功,以前发生过googlebot的DNS反查IP失败,返回数字的IP地址,然后被我们误屏蔽的情况;
- 不是所有搜索引擎爬虫都支持这种反查方式,例如MIP爬虫、baidu app的爬虫等都不支持。
我们现在采取的办法:
- 如果host反查出来是数字IP地址,暂时不能判断是假冒的搜索引擎爬虫;
- 如果host反查出来是nt.js.dynamic.163data.com.cn之类的非数字IP地址,又不是已知的*.googlebot.com这种,就判为假冒搜索引擎;
- 添加IP白名单,已知搜索引擎爬虫IP段就放行;
- 添加反查出来的白名单,更多种类的搜索引擎爬虫可以放行。
目前用PHP编写的程序已经在一台服务器上运行了2个星期,每天可以屏蔽100多个假冒搜索引擎爬虫的IP。例如:
IP地址=>121.232.43.147 解析主机名=>147.43.232.121.broad.nt.js.dynamic.163data.com.cn User-Agent=>Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
评论4
学习了,感谢
学习了,感谢对于我这种技术小白来说,只有靠插件了
对于我这种技术小白来说,只有靠插件了如果有现成的插件我也不想开发啊
如果有现成的插件我也不想开发啊,你如果找到能解决类似问题的插件请告诉我,谢谢。🤝
不过如果能增强一些技术实力的话还是尽量增强一些,或者找技术人员一起合作,网站要发展总是会遇到各种技术问题的,要有一定实力去应对。💪😀
用插件就行了吧,其他的咱们也不会;www.ntxm123
用插件就行了吧,其他的咱们也不会