robots.txt介绍
robots.txt概述
- 
robots.txt是一个存放在网站根目录下的ASCII编码文件,用于告诉搜索引擎爬虫这个站点中有哪些内容是不应该被抓取的,哪些又是可以获取的。在爬取页面之前,爬虫会查看网站的robots.txt文件以确认不应该爬取的页面。robots.txt并非规范,而是约定俗成,有些爬虫机器人会遵守这一规范,有些则并不会。以下是Cloudflare对robots.txt的介绍:Robots.txt 文件是针对机器人的一组指令。该文件包含在大多数网站的源文件中。Robots.txt 文件主要用于管理 Web 爬网程序类的良性机器人活动。 
- 
每个站点的robots.txt仅适用于所在协议、主机和端口号都相同的页面,Google对其解释如下: robots.txt 文件仅适用于所在的协议、主机和端口内的路径。也就是说, https://example.com/robots.txt中的规则仅适用于https://example.com/中的文件,而不适用于子网域(如https://m.example.com/)或备用协议(如http://example.com/)。
robots.txt文件的编写
文件组成
- 
robots.txt文件由一个或多个组组成,每个组都以User-agent开头,内容则由多条规则(指令)组成,每条规则占一行。
- 
爬虫会从上到下处理组,一个用户代理(User-agent)仅能匹配一个组,如果同一用户代理有多个组,则会在处理之前讲这些内容合并到一个分组中。 
- 
规则的内容区分大小写 - 规则区分大小写。例如,disallow: /file.asp适用于https://www.example.com/file.asp,但不适用于https://www.example.com/FILE.asp。
 
- 规则区分大小写。例如,
- 
以 #开头的行即为注释行,处理过程中会忽略这些内容。
User-agent
- 
User-agent(用户代理)既可以是普通用户的浏览器,或是机器人的名称。 
- 
常见搜索引擎机器人用户代理名称如下: Google: - Googlebot
- Googlebot-Image(用于图像)
- Googlebot-News(用于新闻)
- Googlebot-Video(用于视频)
 Bing - Bingbot
- MSNBot-Media(用于图像和视频)
 Baidu - Baiduspider
 Yahoo - Slurp
 
- 
使用 *作为通配符,可以匹配所有User-agent。
Disallow
- 
配置在 Disallow中的内容为不允许机器人爬取的页面,每一行仅可以配置一个目录或页面,多个禁止项可以使用多个Disallow。1 
 2
 3
 4Disallow: /cgi-bin/ 
 Disallow: /images/
 Disallow: /tmp/
 Disallow: /private/
Allow
- 
使用 Allow配置允许机器人爬取的页面,相应的,没有规定的页面则不允许爬取,可以结合Disallow使用。1 
 2Disallow: /blog 
 Allow: /blog/allowed-post在这个例子中,搜索引擎可以访问: /blog/allowed-post,但是它不能访问:/blog/another-post/blog/yet-another-post/blog/download-me.pdf
- 
规则冲突 - 
如果同时在 Allow和Disallow中声明了同一个路径,则遵循指令字符较长的那个1 
 2Disallow: /blog/ 
 Allow: /blog在这一举例中, Disallow长度为6字符,而Allow则为5字符,那么机器人会遵循Disallow
- 
如果 Disallow和Allow长度相同,那么会使用限制范围较小的指令。
 
- 
Sitemap
- 
使用 Sitemap可以标记网站地图的所在位置,这个xml文件中通常包含需要被搜索引擎抓取、索引的所有页面。1 Sitemap: https://www.domain.com/sitemap.xml 
- 
如果没有向搜索引擎主动提交网站地图,那么机器人可以 Sitemap标识的网站地图快速获知需要被爬取的页面。
- 
Sitemap一般写在robots.txt文件的开头或结尾,可以使用多条Sitemap标识多个sitemap.xml文件的路径。
Crawl-delay(Google不再支持)
- 
使用 Crawl-delay可以指定抓取的间隔时间,即每次抓取后停止的时间,单位是秒。1 Crawl-delay: 5 
Noindex(Google不支持)
- 
指定搜索引擎不索引的路径 1 Noindex: /blog/ 
Nofollow(Google不支持)
- 
指定搜索引擎不跟随某个地址 1 Nofollow: /blog/ 
robots.txt文件的作用
robots.txt文件的使用有如下好处:
- 防止抓取重复页面;
- 让网站在某个阶段不公开 (比如:在搭建网站雏形时);
- 防止抓取内部搜索页面;
- 防止服务器过载;
- 防止谷歌浪费crawl budget(抓取预算);
- 防止部分图片、视频及其它资源展示在搜索引擎结果中。
