robots 協議,首先了解robots.txt
html
robots.txt 是搜索引擎中訪問網站的時候要查看的第一個文件【是一種存放於網站根目錄下的ASCII編碼的文本文件】,它一般告訴網站搜索引擎的漫遊器(又稱網絡蜘蛛):此網站中的哪些內容是不該該被搜索引擎的漫遊其獲取的,哪些是能夠獲取的。web
在抓取網頁時大部分網絡爬蟲會遵循Robot.txt協議,網站自己能夠用兩種方式聲明不想被搜索引擎收入的內容,第一種方式,是在站點的根目錄上增長一個純文本文件/robots.txt , 另一種表示方式是直接在html頁面中使用Robots 的標籤。正則表達式
當一個搜索蜘蛛訪問到一個網站時,它會首先檢查該站點目錄下是否存在robots.txt,若是存在,搜索機器人就會按照該文件中的內容來肯定訪問的範圍,若是該文件不存在,全部的搜索蜘蛛將可以訪問網站上的全部沒有被口令保護的頁面。
此文本文件中能夠指定不一樣的網絡爬蟲可以訪問的頁面和禁止訪問的頁面,指定的由正則表達式表示,網絡爬蟲在採集這個網站以前,首先獲取這個文本文件,而後解析其中的規則,再根據規矩來採集網站的數據。安全
Robots協議規則服務器
User-agent: * 這裏的*表明的全部的搜索引擎種類,*是一個通配符 Disallow: /admin/ 這裏定義是禁止爬尋admin目錄下面的目錄 Disallow: /require/ 這裏定義是禁止爬尋require目錄下面的目錄 Disallow: /ABC/ 這裏定義是禁止爬尋ABC目錄下面的目錄 Disallow: /cgi-bin/*.htm 禁止訪問/cgi-bin/目錄下的全部以".htm"爲後綴的URL(包含子目錄)。 Disallow: /*?* 禁止訪問網站中全部包含問號 (?) 的網址 Disallow: /.jpg$ 禁止抓取網頁全部的.jpg格式的圖片 Disallow:/ab/adc.html 禁止爬取ab文件夾下面的adc.html文件。 Allow: /cgi-bin/ 這裏定義是容許爬尋cgi-bin目錄下面的目錄 Allow: /tmp 這裏定義是容許爬尋tmp的整個目錄 Allow: .htm$ 僅容許訪問以".htm"爲後綴的URL。 Allow: .gif$ 容許抓取網頁和gif格式圖片 Sitemap: 網站地圖 告訴爬蟲這個頁面是網站地圖
附上連接:【文件的具體寫法】https://blog.csdn.net/God_XiangYu/article/details/100602297網絡
robots不是一種規範,而是約定俗成的,因此沒法保證網站的隱私,robots文件既不是命令,也不是防火牆,任何一個編輯文本的編輯器便可編輯。編輯器
相信不少人瞭解到此協議都是從爬蟲開始,因此此協議又常常被稱爲機器人排除標準ide
因爲是創建在網站和爬蟲之間,總有些誤區:svg
誤區一:網站上的全部文件都須要蜘蛛抓取,那我就不必在添加robots.txt文件了。若是該文件不存在,全部的搜索蜘蛛將默認可以訪問網站上全部沒有被口令保護的頁面。網站
每當用戶試圖訪問某個不存在的URL時,服務器都會在日誌中記錄404錯誤(沒法找到文件)。 每當搜索蜘蛛來尋找並不存在的robots.txt文件時,服務器也將在日誌中記錄一條404錯誤, 因此你應該作網站中添加一個robots.txt。
誤區二:在robots.txt文件中設置全部的文件均可以被搜索蜘蛛抓取,這樣能夠增長網站的收錄率。
網站中的程序腳本、樣式表等文件即便被蜘蛛收錄,也不會增長網站的收錄率, 還只會浪費服務器資源。所以必須在robots.txt文件裏設置不要讓搜索蜘蛛索引這些文件。
誤區三:搜索蜘蛛抓取網頁太浪費服務器資源,在robots.txt文件設置全部的搜索蜘蛛都不能抓取所有的網頁。
若是這樣的話,會致使整個網站不能被搜索引擎收錄。
Despite the use of the terms 「allow」 and 「disallow」, the protocol is purely advisory and relies on the compliance of the web robot. Malicious web robots are unlikely to honor robots.txt; some may even use the robots.txt as a guide to find disallowed links and go straight to them. While this is sometimes claimed to be a security risk, this sort of security through obscurity is discouraged by standards bodies. The National Institute of Standards and Technology (NIST) in the United States specifically recommends against this practice: "System security should not depend on the secrecy of the implementation or its components."In the context of robots.txt files, security through obscurity is not recommended as a security technique.
【翻譯】
儘管使用了「容許」和「禁止」這兩個術語,但該協議純粹是建議性的,而且依賴於網絡機器人的合規性。 惡意網絡機器人不太可能尊重robots.txt; 有些人甚至可使用robots.txt做爲指導來查找不容許的連接並直接找到它們。 雖然這有時被認爲是一種安全風險,標準機構不鼓勵這種經過無聲的安全措施。 美國國家標準與技術研究院(NIST)特別建議不要採用這種作法:「系統安全不該取決於實施或其組件的保密性。」在robots.txt文件的背景下,不推薦將經過隱藏實現安全性做爲一種安全技術。