◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
我们在做网站时,有些目录或者文件不希望搜索引擎蜘蛛搜索到,比如后台,重要页面或文件。那么我们这时该怎么办呢?最简单的方法是修改robots.txt文件和网页中的robots Meta标签。
robots.txt文件是做什么的,robots文件又称robots协议(也称为爬虫协议、爬虫规则、机器人协议等)robots协议是告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。robots协议不是命令,它只是一个网站国际互联网界通行的道德规范,知名的引擎蜘蛛都会遵守这个协议,只有一些缺乏职业道德的搜索引擎会绕开它。所以修改这个协议也不是万能保险的。
robots.txt文件是一个放置在网站根目录下的记事本文件,当搜索蜘蛛访问网站时,它会先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。百度官方建议,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。
robots文件屏蔽的写法
下面是一个网站的robots文件的代码样式。
- User-agent: *
- Disallow: /sad/ad_js.php
- Disallow: /sad/advancedsearch.php
- Disallow: /sad/car.php
- Disallow: /sad/carbuyaction.php
- Disallow: /sad/shops_buyaction.php
- Disallow: /sad/erraddsave.php
- Disallow: /sad/posttocar.php
- Disallow: /sad/disdls.php
- Disallow: /sad/feedback_js.php
- Disallow: /sad/mytag_js.php
- Disallow: /sad/rss.php
- Disallow: /sad/search.php
- Disallow: /sad/recommend.php
- Disallow: /sad/stow.php
- Disallow: /sad/count.php
- Disallow: /include
- Disallow: /templets
我们来看一下它的意思。
robots文件中应同时包含2个域,“User-agent:”和“Disallow:”,其中User-agent:代表允许、 Disallow: 代表禁止。每条指令独立一行。并且User-agent必须出现在第一行(有意义的行,注释除外),首先声明用户代理。
User-agent:
User-agent:指定允许哪些蜘蛛抓取,如果给出参数,则只有指定的蜘蛛能够抓取;如值为通配符“*”号,代表允许所有蜘蛛抓取。如:
User-agent: Googlebot
只允许Google的蜘蛛抓取。
User-agent: baiduspider
只允许百度的蜘蛛抓取。
User-agent: *
这个是指允许所有蜘蛛抓取,*为通配符,代表所有。
Disallow:
这个是表示禁止蜘蛛抓取的,以上面的robots文件为例。
Disallow: /sad/ad_js.php
这个是指禁止引擎蜘蛛抓取网站中sad目录中的ad_js.php文件
Disallow: /include
这个是指禁止引擎蜘蛛抓取网站中include整个目录,它和Disallow: /include/不是等同的。
Disallow: /include/
这个是指禁止引擎蜘蛛抓取网站中include目录下面的目录,但include目录中的文件蜘蛛仍然可以抓取。
Disallow: /cgi-bin/*.htm
禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。
Disallow: /*?*
禁止访问网站中所有包含问号 (?) 的网址
Disallow: /.jpg$
禁止抓取网页所有的.jpg格式的图片
Allow:
这是允许的意思。
Allow: /include/
这里是允许爬寻include目录下面的目录
Allow: /include
这里是允许爬寻include整个目录
Allow: .htm$
仅允许访问以".htm"为后缀的URL。
Allow: .gif$
允许抓取网页和gif格式图片
Sitemap:
网站地图 告诉爬虫这个页面是网站地图
robot文件的常见用法
例1. 禁止所有搜索引擎访问整个网站。
User-agent: *
Disallow: /
例2.禁止百度蜘蛛访问整个网站。
User-agent: baiduspider
Disallow: /
例3.允许所有搜索引擎访问(也可以建立一个空robots.txt文件或者不建立robots文件)
User-agent: *
Allow: /
User-agent:后的*具有特殊的含义,代表“any robot”,所以在该文件中不能有“Disallow: /tmp/*” or “Disallow:*.gif”这样的记录出现。
robots Meta标签屏蔽法
robots.txt是放在网站中,文件级的网络蜘蛛授权;而robots Meta标签是放在网页中,一般用于部分网页需要单独设置的情况下。两者的功能是一样的。
Meta robots标签必须放在和之间,格式:
content中的值决定允许抓取的类型,必须同时包含两个值:是否允许索引(index)和是否跟踪链接(follow,也可以理解为是否允许沿着网页中的超级链接继续抓取)。共有4个参数可选,组成4个组合:
index,follow:允许抓取本页,允许跟踪链接。
index,nofollow:允许抓取本页,但禁止跟踪链接。
noindex,follow:禁止抓取本页,但允许跟踪链接。
noindex,nofllow:禁止抓取本页,同时禁止跟踪本页中的链接。
以上1和4还有另一种写法:
index,follow可以写成all,如:
noindex,nofollow可以写成none,如:
需要注意的是,robots Meta标签很多搜索引擎是不支持的,只有少数搜索引擎能够识别并按给定的值抓取。所以,尽可能的使用robots.txt文件来限制抓取。