robots
1.1、robots简介

robots协议的全称是Robots Exclusion Protocol(网络爬虫排除标准)。

网站通过robots协议告诉搜索引擎、爬虫或者机器人哪些页面可以抓取,哪些页面不能抓取。

robots协议只是一个道德规范,是一个行业自行约定,并不是法律,所以, 有些企业或者个人为了利益不遵守这个协议,随便抓取别的网站内容进行数据分析之类的活动!

robots协议虽然不是法律,但是在国外已经有根据此协议进行判案的例子出现,在大数据时代, 国家势必会规范互联网行为准则,让互联网生态健康发展。

1.2、robots.txt

robots协议规定:在网站的根目录下提供一个名称为robots.txt的文本文件, 这个文本文件的内容有一些规则,规定了这个网站的哪些内容可以被抓取,哪些内容不能被抓取!

当一个爬虫或者机器人访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt, 如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围; 如果不存在,爬虫或者机器人将能够访问网站上没有被口令保护的页面。

爬虫或者机器人都是人写的,如果这个机器人无视robots.txt的存在也是有可能的,就好比, 你家被陌生人不敲门就闯入了一样!敲门被主人允许进入才能进入别人家,这就是人类的道德规范,但不是法律!

robots.txt文件内容的规则其实非常简单,下面看一下几个著名网站的这个文件的示例:

百度的robots.txt文件内容:

淘宝的robots.txt文件内容:

如果你的网站使用的是WordPress搭建的,你自己也没有创建robots.txt这个文件, 那么WordPress在第一次访问的时候自动创建这个文件,内容如下:

User-Agent: *
Disallow: /wp-admin/

/wp-admin/是后台管理的页面,所以不希望被抓取!

总结起来就是下面2条规则:

1、User-AgentDisallow或者Allow组合出现, 一个User-Agent可以对应多个Disallow或者AllowUser-Agent是HTTP请求头,包含了爬虫或者机器人信息,透过它,可以知道是哪个机器人访问的网站!

2、DisallowAllow的值是一个该网站的资源路径,以/开始, 如果URL上需要请求参数,后面加上?,如果某个路径下的所有页面都不想让访问,后面加上/

1.3、用wget爬取网站

wget有抓取网站的功能, 我们可以使用它来对我们的robots.txt文件进行验证,看是否起作用了。