我們經(jīng)常會(huì)碰到黑客利用偽裝蜘蛛掃描網(wǎng)站,今天我們介紹下如何利用IP反查方法,判斷蜘蛛是否為百度搜索引擎蜘蛛。
以百度為例,通常我們判斷是否是百度蜘蛛抓取看用戶代理字符串也就是User-Agent,但是User-Agent是可以模擬的,所以很多時(shí)候也會(huì)有虛假的模擬偽裝成百度蜘蛛來(lái)抓取,這時(shí)候我們就需要學(xué)會(huì)分辨真?zhèn)巍?/p>
首先是百度User-Agent代理字符串,百度官方公布的有如下User-Agent:
移動(dòng)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;+http://www.baidu.com/search/spider.html)
PC UA:Mozilla/5.0 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)
新增渲染UA:
移動(dòng)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; +http://www.baidu.com/search/spider.html)
PC UA:Mozilla/5.0 (compatible;Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)
需要注意的是百度新增了一個(gè)移動(dòng)的User-Agent,和一個(gè)PC的User-Agent。我們知道了百度蜘蛛的User-Agent,如何正確識(shí)別和判斷某條抓取是否是真實(shí)的百度蜘蛛。
如何識(shí)別百度蜘蛛
1、首選我們需要通過(guò)關(guān)鍵詞找User-Agent中是否包含Baiduspider;
2、如果想?yún)^(qū)分移動(dòng)和PC的蜘蛛的話,我們還需要在結(jié)果中再進(jìn)行關(guān)鍵詞過(guò)濾,移動(dòng)端的User-Agent包含:Android 、iPhone、Mobile等三個(gè)中至少一個(gè)。
3、通過(guò)上述操作我們可以分辨出哪些抓取是百度蜘蛛抓取,但并不能分辨真?zhèn)巍?/p>
判斷百度蜘蛛真?zhèn)?/h2>
1、驗(yàn)證百度蜘蛛真?zhèn)挝覀円话闶褂玫氖荄NS反查IP的方式來(lái)進(jìn)行判斷,首選我們需要找到上述抓取記錄中蜘蛛的IP。
2、以windows操作系統(tǒng)為例,開(kāi)始運(yùn)行中輸入cmd 彈出窗口中輸入 nslookup (上述IP地址),判斷百度蜘蛛的真?zhèn),真是百度蜘蛛結(jié)果中會(huì)返回以*.baidu.com 或*.baidu.jp 的格式命名hostname,如不包含則為假百度蜘蛛。
常見(jiàn)HTTP狀態(tài)碼解讀:
1、200代碼,表示蜘蛛爬取正常
2、404代碼,訪問(wèn)的這個(gè)鏈接是錯(cuò)誤鏈接
3、301代碼,永久重定向
4、302代碼,表示臨時(shí)重定向
5、304代碼,客戶端已經(jīng)執(zhí)行了GET,但文件未變化。
6、500代碼,表示網(wǎng)站內(nèi)部程序或服務(wù)器有錯(cuò)