robots.txt文件用法完全攻略
有些时候,我们并不希望网站的某些页面被抓取和收录,比如付费内容、还在测试阶段的页面、复制内容页面等。即便我们在网站上不出现这些页面的链接,甚至使用 JavaScript、Flash 的方式进行链接,nofollow 标签也不能保证页面一定不被搜索引擎收录,虽然我们自己没有链接到不想被收录的页面,但其他网站可能由于某种原因出现导入链接,而致使页面被收录。
要确保页面不被收录,方法之一就是使用 robots.txt 文件。
robots.txt 是一种纯文本格式的文件,使用任何一个常见的文本编辑器(比如Windows系统自带的记事本)就可以创建和编辑,它是搜索引擎进入网站后第一个爬取的文件,通常放置于网站根目录下。
搜索引擎蜘蛛在访问网站时会先查看网站根目录下是否存在一个名为 robots.txt 的纯文本文件,robots.txt 用于指定搜索引擎禁止抓取网站某些内容或指定允许抓取某些内容,如新宝库的 robots 文件位于 https://www.xinbaoku.com/robots.txt。
只有在需要禁止抓取某些内容时,写 robots.txt 才有意义。
robots文件不存在或者是空文件都意味着允许搜索引擎抓取所有内容。
部分服务器存在设置问题,当 robots 文件不存在时会返回 200 状态码及一些错误信息,而不是 404 状态码,这有可能使搜索引擎错误解读 robots 文件信息,所以建议即使允许抓取所有内容,也要建一个空的 robots.txt 文件放在根目录下。
例1:禁止所有搜索引擎访问网站的任何部分:
例2:允许所有搜索引擎蜘蛛访问(或者建一个空文件“/robots.txt”):
例3:禁止某个搜索引擎访问:
例4:允许某个搜索引擎访问:
例5:只允许某个搜索引擎访问,其他搜索引擎禁止访问:
例6:只禁止某个搜索引擎访问,其他搜索引擎允许访问:
书写 robots 文件时需要注意以下细节:
robots.txt 文件内容释义:
主流搜索引擎都遵守 robots 文件指令,robots.txt 禁止爬取的文件搜索引擎将不访问、不爬取。但要注意的是,被 robots 文件禁止爬取的 URL 还是可能出现在搜索结果中。只要有导入链接指向这个 URL,搜索引擎就知道这个 URL 的存在。虽然不会抓取页面内容,但是可能以下面几种形式显示在搜索结果中:
要想使 URL 完全不出现在搜索结果中,需要使用页面上的 meta robots 标签。
要确保页面不被收录,方法之一就是使用 robots.txt 文件。
robots.txt 文件是什么?
robots.txt 即蜘蛛协议,全称为“网络爬虫排除标准”(Robots Exclusion Protocol),也称为爬虫协议、机器人协议等,其作用是告知搜索引擎允许或不允许抓取哪些页面。robots.txt 是一种纯文本格式的文件,使用任何一个常见的文本编辑器(比如Windows系统自带的记事本)就可以创建和编辑,它是搜索引擎进入网站后第一个爬取的文件,通常放置于网站根目录下。
搜索引擎蜘蛛在访问网站时会先查看网站根目录下是否存在一个名为 robots.txt 的纯文本文件,robots.txt 用于指定搜索引擎禁止抓取网站某些内容或指定允许抓取某些内容,如新宝库的 robots 文件位于 https://www.xinbaoku.com/robots.txt。
只有在需要禁止抓取某些内容时,写 robots.txt 才有意义。
robots文件不存在或者是空文件都意味着允许搜索引擎抓取所有内容。
部分服务器存在设置问题,当 robots 文件不存在时会返回 200 状态码及一些错误信息,而不是 404 状态码,这有可能使搜索引擎错误解读 robots 文件信息,所以建议即使允许抓取所有内容,也要建一个空的 robots.txt 文件放在根目录下。
robots 文件的用法
robots.txt 文件由记录组成,记录之间以空行分开,我们举例说明 robots.txt 的具体格式。例1:禁止所有搜索引擎访问网站的任何部分:
User-agent: *
Disallow: /
例2:允许所有搜索引擎蜘蛛访问(或者建一个空文件“/robots.txt”):
User-agent: *
Allow: /
例3:禁止某个搜索引擎访问:
User-agent: Baiduspider
Disallow: /
例4:允许某个搜索引擎访问:
User-agent: Baiduspider
Allow: /
例5:只允许某个搜索引擎访问,其他搜索引擎禁止访问:
User-agent: Baiduspider
Disallow:
User-agent: *
Disallow: /
例6:只禁止某个搜索引擎访问,其他搜索引擎允许访问:
User-agent: Baiduspider
Disallow: /
User-agent: *
Disallow:
书写 robots 文件时需要注意以下细节:
-
一定不要写绝对路径,就是不要带网站域名,用
/
代替即可。 -
注意 robots 文件中的所有符号都是在英文状态下写的,比如 Disallow: /admin/ 中的
:
是英文状态下的。 -
注意空格,例如 Disallow: /admin/ 中
:
后面紧跟着一个空格。 -
注意大小写,例如 Disallow: /admin/ 中 Disallow 的
D
是大写的。 - robots 是有生效时间的,是由百度决定的,几天或者两个月以内,所以一定不要随便屏蔽整站。
- 还有一点要弄清楚,Disallow: /help 的意思是禁止蜘蛛访问 /help.html、/helpabc.html、/help/index.html 等所有带 help 的文件及文件夹;Disallow:/help/ 则是禁止蜘蛛访问 /help/index.html 这种形式的路径,允许访问 /help.html、/helpabc.html。
robots.txt 文件内容释义:
1) User-agent
User-agent 代表蜘蛛名称,例如:- User-agent:Baiduspider 代表针对百度蜘蛛。
-
User-agent:* 代表所有的搜索引擎种类,
*
是一个通配符。
2) Disallow
Disallow 表示不允许,代表禁止蜘蛛爬取的文件或目录。例如:- Disallow: /admin/ 代表禁止爬取 admin 目录下的所有文件。
-
Disallow: /cgi-bin/*.htm 代表禁止访问 /cgi-bin/ 目录下的所有以
.htm
为后缀的 URL(包含子目录)。 -
Disallow: /*?* 代表禁止访问网站中所有包含问号
?
的网址。 -
Disallow: /.jpg$ 代表禁止爬取网页所有的
.jpg
格式的图片。 - Disallow:/ad/ct.html 代表禁止爬取 ad 文件夹下的 ct.html 文件。
3) Allow
Allow 表示允许,代表允许蜘蛛爬取的目录或文件。例如:- Allow: /cgi-bin/ 代表允许爬取 cgi-bin 目录下的目录。
- Allow: /tmp 代表允许爬取 tmp 的整个目录。
-
Allow: .htm$ 代表仅允许访问以
.htm
为后缀的 URL。 - Allow: .gif$ 允许爬取网页和 GIF 格式的图片。
4) Sitemap
Sitemap 一般放在 robots.txt 内容最底部,用于告知网络爬虫这个页面是网站地图,如 Sitemap:http://www.youdomainname.com/sitemap.htm。主流搜索引擎都遵守 robots 文件指令,robots.txt 禁止爬取的文件搜索引擎将不访问、不爬取。但要注意的是,被 robots 文件禁止爬取的 URL 还是可能出现在搜索结果中。只要有导入链接指向这个 URL,搜索引擎就知道这个 URL 的存在。虽然不会抓取页面内容,但是可能以下面几种形式显示在搜索结果中:
- 只显示 URL,没有标题、描述,谷歌常这样处理。
- 显示开放目录或雅虎等重要目录收录的标题和描述。
- 导入链接的锚文字显示为标题和描述,百度常这样处理。
要想使 URL 完全不出现在搜索结果中,需要使用页面上的 meta robots 标签。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算