许多新手站长朋友刚坐做站遇见最尴尬的事就是蜘蛛抓取了不该抓取的页面,记得刚做站的时候有一次忘写robots文件了导致网站登录页面被收录了。。尴尬。。这个页面被收录导致的后果就是我的邮箱一直收到非法登陆网站后台的邮件。当时找了好久没找到原因,最后site了一下发现登陆页面被收录了,当场直接给做了限制访问。(这些东西后边会讲到)只用robots.txt是不行的。因为百度的数据库并不是实时跟新的。首先来讲一下什么是robots.txt,我们从后缀名可以看出这就是是一个文本文件,也就是说几乎所有编辑器都能编写,包括windows自带的记事本(不建议用记事本写文件容易出编码问题,其他文章会专门讲解)。所以这玩意并不是什么命令行这只是一份协议中文称作“网络爬虫排除标准”英文名“Robots Exclusion Protocol”,这份文件放置于web服务器根目录有些服务器为www文件夹下,有些为htdocs文件夹下,并且Spider来到你的网站第一步就是要找寻robots协议来确定网站抓取权限,当然有些CMS比较特殊他会在Spider或者访客来访过程中自动生成一份robots.比如说大名鼎鼎的博客cms——wordpress(查看的资料中是有这项功能但是实际使用中并未感受到,不建议依赖cms生成的robots文件)你当然你写了CMS一般就不会再生成了。从原则上来讲这个robots协议是所有Spider的道德规范,但是遇见不讲道德的你也没办发。(当然办法还是有的只是这里专门讲解的是robots、txt暂不做赘述)。

上边扯了那么多现在来讲讲robots协议怎么书写:

User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符代表这份协议针对所有Spider如果需要针对某个Spider可以把通配符改成相应名称即可(举个栗子如独适用于百度User-agent:Baiduspider)

常见蜘蛛名称参照

1、百度系:(Baiduspider-mobile(抓取wap)、Baiduspider-image(抓取图片)、Baiduspider-video(抓取视频)、Baiduspider-news(抓取新闻)。其中Baiduspider和Baiduspider-image两种常见,

2谷歌系:谷歌蜘蛛最新名称为“compatible; Googlebot/2.1;”。还发现了Googlebot-Mobile,看名字是抓取wap内容的。

3、其他:360蜘蛛:360Spider、SOSO蜘蛛:Sosospider、雅虎蜘蛛:“Yahoo! Slurp China”或者Yahoo! 、有道蜘蛛:YoudaoBot,YodaoBot、搜狗蜘蛛:Sogou News Spider,搜狗蜘蛛还包括如下这些:Sogou web spider、Sogou inst spider、Sogou spider2、Sogou blog、Sogou News Spider、Sogou Orion spider,名称都带空格。线上常见"Sogou web spider/4.0" ;"Sogou News Spider/4.0" ;"Sogou inst spider/4.0" 、MSN蜘蛛:msnbot,msnbot-media(只见到msnbot-media在狂爬……)、必应蜘蛛:bingbot 线上(compatible; bingbot/2.0;)、一搜蜘蛛:YisouSpider、Alexa蜘蛛:ia_archiver、宜sou蜘蛛:EasouSpider、即刻蜘蛛:JikeSpider、一淘网蜘蛛:EtaoSpider,这东西看看就好别太认真毕竟大多数你见不到,是不是倍感坑爹!

    Disallow Disallow 列出的是要禁止抓取的的网页和规则,后面用/代表层次关系
    Disallow:/                       代表着禁止抓取网站所有内容)
    Disallow:/abc                     禁止抓取abc及其层次下的内容
    Disallow:/abc/                    禁止抓取abc层次下的内容,但是允许抓abc
    Disallow:/*.png$                  禁止抓取png的图片,其他格式的也这样写比如禁止抓网站中的doc后缀文件是Disallow:/*.doc$)   $代表url适配终止防止长文件名被误伤
    Disallow:/abc/*.png$               禁止访问abc层次下的PNG图片,其他格式也是
    Disallow:/*?*                     屏蔽站内所有动态URL,因为动态地址都带?所有可以用这种形式,其他的字符也可以
    Disallow:/abc/*?*                                只屏蔽abc层次下的动态地址
    Disallow:/*?/                                     屏蔽动态层次下的内容,比如有些文章或栏目是网址/?14125这样URL,这样可以让抓取文章,也可以屏蔽后面内容
    Disallow:/abc/*?/                                  屏蔽abc栏目下的动态层次下的内容其他的按照这个思路灵活使用就行了
    Allow                                              代表允许访问抓取的意思一定放在disallow的前面才能不受disallow的影响,
    Allow:/abc/
    disallow:/*?*                                          这两句表示允许访问bac及其层次下所有内容但是其中的动态内容不能访问

    sitemap:网址/sitemap.xml               告诉Spider 网站地图的地址
    Crawl-delay                                     一般有些搜索蜘蛛频繁抓取网站,会对服务器造成很大的负担,这个就是用来控制抓取频次的(不过许多引擎已不支持这功能了,在其站长工具可调整抓取频率)
    Crawl-delay:                              第一次抓取之后需要间隔多少秒才能再去抓取