标明訪問者屬性的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
用插件就行了吧,其他的咱們也不會