什么是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路径