【每天学习一点新知识】robots.txt详解
目錄
什么是robots.txt?
如何查看robots.txt??
robots.txt的內容
常見的搜索引擎的蜘蛛名稱?
?如果創建并上傳robots.txt文件?
如果網站信息都需要被抓取,是不是可以不用robots.txt了?
為什么叫"君子協議?"
什么是robots.txt?
????????robots.txt是一個協議,我們可以把它理解為一個網站的"管家",它會告訴搜索引擎哪些頁面可以訪問,哪些頁面不能訪問。也可以規定哪些搜索引擎可以訪問我們的網站而哪些搜索引擎不能爬取我們網站的信息等等,是網站管理者指定的"君子協議"。
????????當一個搜索機器人(有的叫搜索蜘蛛)訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該文件中的內容來確定訪問的范圍;如果該文件不存在,那么搜索機器人就沿著鏈接抓取。
????????另外,robots.txt必須放置在一個站點的根目錄下,而且文件名必須全部小寫。
如何查看robots.txt??
在瀏覽器的網址搜索欄中,輸入網站的根域名,然后再輸入/robot.txt即可查看。比如,百度的robots.txt網址為?https://www.baidu.com/robots.txt
?
robots.txt的內容
User-agent: 搜索機器人的名稱
Disallow: 不允許搜索機器人訪問的地址
Allow: 允許搜索機器人訪問的地址
若User-agent是*,則表示允許所有的搜索機器人訪問該站點下的所有文件。在"robots.txt"文件中,"User-agent:*"這樣的記錄只能有一條。
Disallow和Allow后面跟的是地址,這個URL可以是一條完整的路徑,也可以是部分的,地址的描述格式符合正則表達式(regex)的規則。因此可以在python中使用正則表達式來篩選出可以訪問的地址。需要特別注意的是Disallow與Allow行的順序是有意義的,robot會根據第一個匹配成功的Allow或Disallow行確定是否訪問某個URL。
下列內容代表 禁止所有搜索引擎訪問網站的任何部分
User-agent: *
Disallow: /
例如:
代表禁止Baidu spider訪問根目錄下/baidu?、/s?、/ulink?、/link?、/home/news/data/、/bh 這幾個子目錄
具體的寫法可參考:robots.txt 文件詳解_passport_daizi的博客-CSDN博客
常見的搜索引擎的蜘蛛名稱?
?
?如果創建并上傳robots.txt文件?
(1) 用記事本或者其他文本型的軟件(譬如Emeditor)創建一個名為robots.txt的文件,注意名字不能改,也不能大寫,必須全小寫。
(2)?用記事本編輯該文件,輸入指令規則
例如:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~name/
(3) 上傳文件至網站根目錄。由于網站建站系統不同、服務器架構不同,上傳文件的方法沒有統一的,譬如可以借助主機的管理面板,又或是用FTP,在連通到網站所在的文件目錄后,將robots.txt放在網站所在文件夾第一層中(也就是根目錄,必須位于根目錄中,否則無效)。當成功上傳后,通常在瀏覽器中訪問域名/robots.txt就可以查看到文件。
如果網站信息都需要被抓取,是不是可以不用robots.txt了?
每當用戶試圖訪問某個不存在的URL時,服務器都會在日志中記錄404錯誤(無法找到文件)。每當搜索蜘蛛來尋找并不存在的robots.txt文件時,服務器也將在日志中記錄一條404錯誤,所以建議還是添加一個robots.txt。?
為什么叫"君子協議?"
本身robots.txt就只是一個約定,一個協議,是道德約束,一般的搜索引擎爬蟲都會遵守這個協議的,否則在這個行業還怎么混下去。而且robots.txt一般也是站點為了更好被搜索引擎收錄所準備的。真正的封禁不可能靠user-agent來封禁。
?
?
?
總結
以上是生活随笔為你收集整理的【每天学习一点新知识】robots.txt详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 收缩solarwinds平台中使用SQL
- 下一篇: Web 发送 form-data 请求