robots、404與Spider

1、問題來源

問題始於線上的某次報警。如下圖,可見發生了404錯誤,而REQUESTPATH是robots.txt,一個系統中不存在的路由。從命名上可以隱約猜出與爬蟲有關,BROWSER:"Robot/Spider"也一定程度說明了這點。下一個問題,怎麼確認?是誰在做抓取動作?原因又是什麼?

2、分析過程

還記得linux系統的nslookup命令,可以通過外網ip查找對應的域名,執行如下:

結果的第二行:name = 178-154-244-9.spider.yandex.com。這就有意思了。前面的178-154-244-9看起來就是我們檢索的ip,後面的spider.yandex.com就是我們要抓的域名。

下一步,看看這個域名是屬於誰的:

這樣,就與報警信息中的country:俄羅斯對應上的,是一個搜索引擎的域名。

關於 Yandex 搜索:Yandex 是俄羅斯最大本土搜索引擎網站,比俄羅斯 Google 市場佔有率都高。而在歐洲,現在已經位居歐洲第二大搜索引擎了,在歐洲市場僅次於 Google.

User-Agent 代碼和 IP 地址有人整理過一篇文章,可以參考:https://ie.icoa.cn/bot/yandexbot

3、下一個問題,爲什麼是robots.txt?

robots.txt(統一小寫)是一種存放於網站根目錄下的ASCII編碼的文本文件,它通常告訴網絡搜索引擎的漫遊器(又稱網絡蜘蛛),此網站中的哪些內容是不應被搜索引擎的漫遊器獲取的,哪些是可以被漫遊器獲取的。因爲一些系統中的URL是大小寫敏感的,所以robots.txt的文件名應統一爲小寫。robots.txt應放置於網站的根目錄下。如果想單獨定義搜索引擎的漫遊器訪問子目錄時的行爲,那麼可以將自定的設置合併到根目錄下的robots.txt,或者使用robots元數據(Metadata,又稱元數據)。

robots.txt協議並不是一個規範,而只是約定俗成的,所以並不能保證網站的隱私。注意robots.txt是用字符串比較來確定是否獲取URL,所以目錄末尾有與沒有斜槓“/”表示的是不同的URL。robots.txt允許使用類似"Disallow: *.gif"這樣的通配符。

有一篇文章對robots.txt進行了介紹,可以參見:https://www.test404.com/post-1427.html?wafcloud=1

4、服務器禁止某些User Agent抓取網站

可以考慮使用.htaccess文件,httpd.conf配置文件等方式,可參考:http://www.2zzt.com/jianzhan/7347.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章