关于 robots.txt文件
robots.txt是一个纯文本文件,是爬虫抓取网站的时候要查看的第一个文件。例如一个机器爬虫想要访问一个网站 URL,比如 http://www.123.com/welcome.html。在这样做之前,它首先检查 http://www.123.com/robots.txt,并发现:
- User-agent: * 表示此部分适用于所有机器人
- Disallow: / 表示告诉机器爬虫它不应该访问网站上的任何页面
也就是说robots.txt文件定义了爬虫在爬取该网站时存在的限制,哪些部分爬虫可以爬取,哪些不可以爬取。robots.txt文件在哪,一般位于网站的根目录下。
robots.txt文件的用法(3语法2通配符)
三个语法如下:
1、User-agent:(定义搜索引擎)
示例:
User-agent: *(定义所有搜索引擎)
User-agent: Googlebot (定义谷歌,只允许谷歌蜘蛛爬取)
User-agent: Baiduspider (定义百度,只允许百度蜘蛛爬取)
不同的搜索引擎的搜索机器人有不同的名称,谷歌:Googlebot、百度:Baiduspider、Yahoo:Slurp
2、Disallow:(用来定义禁止蜘蛛爬取的页面或目录)
示例:
Disallow: /(禁止蜘蛛爬取网站的所有目录 “/” 表示根目录下)
Disallow: /admin (禁止蜘蛛爬取admin目录)
Disallow: /abc.html (禁止蜘蛛爬去abc.html页面)
Disallow: /help.html (禁止蜘蛛爬去help.html页面)
3、Allow:(用来定义允许蜘蛛爬取的页面或子目录)
示例:
Allow: /admin/new/(允许蜘蛛爬取admin下的new目录)
Allow: /admin/123.html(允许蜘蛛爬取admin目录中的123.html页面)
两个通配符如下:
4、匹配符 “$”
$ 通配符:匹配URL结尾的字符
5、通配符 “*”
* 通配符:匹配0个或多个任意字符
robots.txt文件常用
1.禁止抓取/test/目录下的所有以”.htm”为后缀的URL(包含子目录)
Disallow: /test/*.htm$
2. 禁止抓取网站中所有的动态页面
Disallow: /*?*
3.禁止搜索引擎抓取特定目录:如禁止搜索引擎抓取test目录
Disallow: /abc/
4.禁止搜索引擎抓取网站所有的图片:(以百度为例)
User-agent: Baiduspider
Disallow: /*.jpg$
Disallow: /*.jpeg$
Disallow: /*.gif$
Disallow: /*.png$
Disallow: /*.bmp$