robots.txt网站爬虫文件设置
目錄:
- 什么是robots.txt
- robots.txt使用誤區
- robots.txt使用技巧
什么是robots.txt?
robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件。Robots.txt文件告訴蜘蛛程序在服務器上什么文件是可以被查看的。
當一個搜索蜘蛛訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該文件中的內容來確定訪問的范圍;如果該文件不存在,所有的搜索蜘蛛將能夠訪問網站上所有沒有被口令保護的頁面。
robots.txt必須放置在一個站點的根目錄下,而且文件名必須全部小寫。
語法:最簡單的 robots.txt 文件使用兩條規則:
·?User-Agent: 適用下列規則的漫游器
· Disallow: 要攔截的網頁
robots.txt使用誤區
誤區一:我網站上所有的文件都需要被蜘蛛抓取,那我就沒必要添加robots.txt文件了。反正如果該文件不存在,所有的搜索蜘蛛將默認能夠訪問網站上所有沒有被口令保護的頁面。
每當用戶試圖訪問某個不存在的URL時,服務器都會在日志中記錄404錯誤文件(無法找到文件)。每當搜索蜘蛛來尋找并不存在的robots.txt文件時,服務器也將在日志中記錄一條404錯誤文件,所以你應該在網站中添加一個robots.txt。
誤區二:在robots.txt文件中設置所有的文件都可以被搜索蜘蛛抓取,這樣可以增加網站的收錄率。
網站中的腳本程序、樣式表等文件即使被蜘蛛收錄,也不會增加網站的收錄率,還只會占用服務器存儲空間。因此必須在robots.txt文件里設置不要讓搜索蜘蛛索引腳本程序、樣式表等文件,具體哪些文件需要排除,在robots.txt使用技巧一文中有詳細介紹。
誤區三:搜索蜘蛛抓取網頁太浪費服務器資源,在robots.txt文件中設置所有的搜索蜘蛛都不能抓取全部的網頁。
如果這樣的話,會導致整個網站不能被搜索引擎收錄。
robots.txt使用技巧
1. 每當用戶試圖訪問某個不存在的URL時,服務器都會在日志中記錄404錯誤(無法找到文件)。每當搜索蜘蛛來尋找并不存在的robots.txt文件時,服務器也將在日志中記錄一條404錯誤,所以你應該在網站中添加一個robots.txt。
2. 網站管理員必須使蜘蛛程序遠離某些服務器上的目錄——保證服務器性能。比如:大多數網站服務器都有程序儲存在“cgi-bin”目錄下,因此在 robots.txt文件中加入“Disallow: /cgi-bin”是個好主意,這樣能夠避免將所有程序文件被蜘蛛索引,可以節省服務器資源。一般網站中不需要蜘蛛抓取的文件有:后臺管理文件、程序腳本、附件、數據庫文件、編碼文件、樣式表文件、模板文件、導航圖片和背景圖片等等。
下面是VeryCMS里的robots.txt文件:
User-agent: *
Disallow: /admin/ 后臺管理文件
Disallow: /require/ 程序文件
Disallow: /attachment/ 附件
Disallow: /images/ 圖片
Disallow: /data/ 數據庫文件
Disallow: /template/ 模板文件
Disallow: /css/ 樣式表文件
Disallow: /lang/ 編碼文件
Disallow: /script/ 腳本文件
3. 如果你的網站是動態網頁,并且你為這些動態網頁創建了靜態副本,以供搜索蜘蛛更容易抓取。那么你需要在robots.txt文件里設置避免動態網頁被蜘蛛索引,以保證這些網頁不會被視為含重復內容。
4. robots.txt文件里還可以直接包括在sitemap文件的鏈接。就像這樣:
Sitemap: http://www.***.com/sitemap.xml
(此處請填寫XML地圖的絕對路徑,即完整URL,如果按習慣填寫Sitemap: /sitemap.xml,提交后會提示:檢測到無效的 Sitemap 網址;語法錯誤。
XML地圖必須在網站根目錄下才有效。)
目前對此表示支持的搜索引擎公司有Google, Yahoo, Ask and MSN。而中文搜索引擎公司,顯然不在這個圈子內。這樣做的好處就是,站長不用到每個搜索引擎的站長工具或者相似的站長部分,去提交自己的sitemap文件,搜索引擎的蜘蛛自己就會抓取robots.txt文件,讀取其中的sitemap路徑,接著抓取其中相鏈接的網頁。
5. 合理使用robots.txt文件還能避免訪問時出錯。比如,不能讓搜索者直接進入購物車頁面。因為沒有理由使購物車被收錄,所以你可以在robots.txt文件里設置來阻止搜索者直接進入購物車頁面。
robots.txt文件的格式
"robots.txt"文件包含一條或更多的記錄,這些記錄通過空行分開(以CR,CR/NL, or NL作為結束符),每一條記錄的格式如下所示:
"<field>:<optionalspace><value><optionalspace>"。
在該文件中可以使用#進行注解,具體使用方法和UNIX中的慣例一樣。該文件中的記錄通常以一行或多行User-agent開始,后面加上若干Disallow和Allow行,詳細情況如下:
User-agent:
該項的值用于描述搜索引擎robot的名字。在"robots.txt"文件中,如果有多條User-agent記錄說明有多個robot會受到"robots.txt"的限制,對該文件來說,至少要有一條User-agent記錄。如果該項的值設為*,則對任何robot均有效,在"robots.txt"文件中,"User- agent:*"這樣的記錄只能有一條。如果在"robots.txt"文件中,加入"User-agent:SomeBot"和若干Disallow、 Allow行,那么名為"SomeBot"只受到"User-agent:SomeBot"后面的Disallow和Allow行的限制。
Disallow:
該項的值用于描述不希望被訪問的一組URL,這個值可以是一條完整的路徑,也可以是路徑的非空前綴,以Disallow項的值開頭的URL不會被robot訪問。例如"Disallow:/help"禁止robot訪問/help.html、 /helpabc.html、/help/index.html,而"Disallow:/help/"則允許robot訪問/help.html、 /helpabc.html,不能訪問/help/index.html。"Disallow:"說明允許robot訪問該網站的所有url,在" /robots.txt"文件中,至少要有一條Disallow記錄。如果"/robots.txt"不存在或者為空文件,則對于所有的搜索引擎 robot,該網站都是開放的。
Allow:
該項的值用于描述希望被訪問的一組URL,與Disallow項相似,這個值可以是一條完整的路徑,也可以是路徑的前綴,以Allow項的值開頭的URL是允許robot訪問的。例如"Allow:/hibaidu"允許robot訪問 /hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一個網站的所有URL默認是Allow的,所以 Allow通常與Disallow搭配使用,實現允許訪問一部分網頁同時禁止訪問其它所有URL的功能。
需要特別注意的是Disallow與Allow行的順序是有意義的,robot會根據第一個匹配成功的Allow或Disallow行確定是否訪問某個URL。
使用"*"和"$":
Baiduspider支持使用通配符"*"和"$"來模糊匹配url。
"$" 匹配行結束符。
"*" 匹配0或多個任意字符。
robots.txt文件用法舉例
例1.禁止所有搜索引擎訪問網站的任何部分?
User-agent: *?
Disallow: /
例2.允許所有的robot訪問?
(或者也可以建一個空文件 "/robots.txt")?
User-agent: *?
Allow: /?
另一種寫法是?
User-agent: *?
Disallow:
例3. 僅禁止Baiduspider訪問您的網站?
User-agent: Baiduspider?
Disallow: /
例4. 僅允許Baiduspider訪問您的網站?
User-agent: Baiduspider?
Allow:?/
例5. 禁止spider訪問特定目錄?
在這個例子中,該網站有三個目錄對搜索引擎的訪問做了限制,即robot不會訪問這三個目錄。需要注意的是對每一個目錄必須分開聲明,而不能寫成 "Disallow: /cgi-bin/ /tmp/"。?
User-agent: *?
Disallow: /cgi-bin/?
Disallow: /tmp/?
Disallow: /~joe/
例6. 允許訪問特定目錄中的部分url?
User-agent: *?
Allow: /cgi-bin/see?
Allow: /tmp/hi?
Allow: /~joe/look
例7. 使用"*"限制訪問url?
禁止訪問/cgi-bin/目錄下的所有以".htm"為后綴的URL(包含子目錄)。?
User-agent: *?
Disallow: /cgi-bin/*.htm?
例8. 使用"$"限制訪問url?
僅允許訪問以".htm"為后綴的URL。?
User-agent: *?
Allow:/ .htm$
例9. 禁止訪問網站中所有的動態頁面?
User-agent: *?
Disallow: /*?*
例10. 禁止Baiduspider抓取網站上所有圖片?
僅允許抓取網頁,禁止抓取任何圖片。?
User-agent: Baiduspider?
Disallow: /.jpg$?
Disallow: / .jpeg$?
Disallow:/ .gif$?
Disallow:/ .png$?
Disallow: /.bmp$
例11. 僅允許Baiduspider抓取網頁和。gif格式圖片?
允許抓取網頁和gif格式圖片,不允許抓取其他格式圖片?
User-agent: Baiduspider?
Allow: .gif$?
Disallow: /.jpg$?
Disallow:/ .jpeg$?
Disallow:/ .png$?
Disallow: /.bmp$
例12. 僅禁止Baiduspider抓取。jpg格式圖片?
User-agent: /Baiduspider?
Disallow:/ .jpg$
百度各個產品使用不同的user-agent:
無線搜索?
Baiduspider-mobile
圖片搜索?
Baiduspider-image
視頻搜索?
Baiduspider-video
新聞搜索?
Baiduspider-news
百度搜藏?
Baiduspider-favo
百度聯盟?
Baiduspider-cpro
商務搜索?
Baiduspider-ads
網頁以及其他搜索?
Baiduspider
轉載于:https://www.cnblogs.com/fx2008/p/3497209.html
總結
以上是生活随笔為你收集整理的robots.txt网站爬虫文件设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几个好用的小模块
- 下一篇: 调用ffmpeg库编译时出现common