什么是robots.txt?
robots.txt是一個純文本文件,是爬蟲抓取網站的時候要查看的第一個文件,一般位於網站的根目錄下。robots.txt文件定義了爬蟲在爬取該網站時存在的限制,哪些部分爬蟲可以爬取,哪些不可以爬取(防君子不防小人)
更多robots.txt協議信息參考:www.robotstxt.org
在爬取網站之前,檢查robots.txt文件可以最小化爬蟲被封禁的可能
下面是百度robots.txt協議的一部分:https://www.baidu.com/robots.txt
1 User-agent: Baiduspider 2 Disallow: /baidu 3 Disallow: /s? 4 Disallow: /ulink? 5 Disallow: /link? 6 Disallow: /home/news/data/ 7 8 User-agent: Googlebot 9 Disallow: /baidu 10 Disallow: /s? 11 Disallow: /shifen/ 12 Disallow: /homepage/ 13 Disallow: /cpro 14 Disallow: /ulink? 15 Disallow: /link? 16 Disallow: /home/news/data/ 17 18 User-agent: MSNBot 19 Disallow: /baidu 20 Disallow: /s? 21 Disallow: /shifen/ 22 Disallow: /homepage/ 23 Disallow: /cpro 24 Disallow: /ulink? 25 Disallow: /link? 26 Disallow: /home/news/data/ 27 28 User-agent: Baiduspider-image 29 Disallow: /baidu 30 Disallow: /s? 31 Disallow: /shifen/ 32 Disallow: /homepage/ 33 Disallow: /cpro 34 Disallow: /ulink? 35 Disallow: /link? 36 Disallow: /home/news/data/ 37 38 User-agent: YoudaoBot 39 Disallow: /baidu 40 Disallow: /s? 41 Disallow: /shifen/ 42 Disallow: /homepage/ 43 Disallow: /cpro 44 Disallow: /ulink? 45 Disallow: /link? 46 Disallow: /home/news/data/ 47 48 User-agent: Sogou spider2 49 Disallow: /baidu 50 Disallow: /s? 51 Disallow: /shifen/ 52 Disallow: /homepage/ 53 Disallow: /cpro 54 Disallow: /ulink? 55 Disallow: /link? 56 Disallow: /home/news/data/ 57 58 User-agent: Sogou blog 59 Disallow: /baidu 60 Disallow: /s? 61 Disallow: /shifen/ 62 Disallow: /homepage/ 63 Disallow: /cpro 64 Disallow: /ulink? 65 Disallow: /link? 66 Disallow: /home/news/data/ 67 68 User-agent: Sogou News Spider 69 Disallow: /baidu 70 Disallow: /s? 71 Disallow: /shifen/ 72 Disallow: /homepage/ 73 Disallow: /cpro 74 Disallow: /ulink? 75 Disallow: /link? 76 Disallow: /home/news/data/ 77 78 User-agent: * 79 Disallow: /
robots.txt中的參數含義:
1. User-agent:描述搜索引擎spider的名字。在“robots.txt“文件中,如果有多條 User-agent記錄,說明有多個robot會受到該協議的約束。所以,“robots.txt”文件中至少要有一條User- agent記錄。如果該項的值設為*(通配符),則該協議對任何搜索引擎機器人均有效。在“robots.txt”文件 中,“User-agent:*”這樣的記錄只能有一條。
2. Disallow: / 禁止訪問的路徑
例如,Disallow: /home/news/data/,代表爬蟲不能訪問/home/news/data/后的所有URL,但能訪問/home/news/data123
Disallow: /home/news/data,代表爬蟲不能訪問/home/news/data123、/home/news/datadasf等一系列以data開頭的URL。
前者是精確屏蔽,后者是相對屏蔽
3. Allow:/允許訪問的路徑
例如,Disallow:/home/后面有news、video、image等多個路徑
接着使用Allow:/home/news,代表禁止訪問/home/后的一切路徑,但可以訪問/home/news路徑
