大部分网站都有一个robots协议,也称为,爬虫协议或机器人协议。以文本文件格式存在,一般都叫做robots.txt,是网站告诉搜索引擎蜘蛛程序哪些页面是可以抓取,哪些页面是拒绝抓取的。当搜索引擎蜘蛛来访问网站的时候,第一件事就是先读取robots文件,然后遵循协议进行对网站进行访问抓取。如果网站不存在robots协议,那么会被视为可以抓取网站上的所有内容。包括敏感隐私文件。所有建议是网站都应该有robots协议。

1721820100-d932df9c7959b9d

一、什么是robots协议文件

robots协议算是用来确保网站隐私信息不被泄露,通过robots协议定义的规则对搜索引擎抓取网站内容做了约定,说白话解释,就是告诉蜘蛛,某些页面是不对蜘蛛开放访问的。一般存放在网站的根目录,但是说白了,各大搜索引擎会抓取吗?个人觉得是都抓取的,可能只是在对页面进行加入索引库的时候进行处理,那些页面不加入索引库,因为毕竟搜索引擎说白了就是数据公司,不会放过每一个数据。当然这个也只是猜测,我们做网站优化,对于robots文件做到我们应该做的就好。

1721820100-730890a56726dbd

Robot 协议中加入网站后台的话可用*号代替一些字符来保证安全。

Robots 协议能更好的辅助搜索引擎蜘蛛抓取我们的网站提高抓取效率

网站上线后当天如果还没修改完毕可以利用 Disallow: / 来屏蔽全站

二、robots协议的写法格式

1、允许所有的机器人:

User-agent: *

Disallow:

另一写法

User-agent: *

Allow:/

2、仅允许特定的机器人:

User-agent: baiduspider

Allow:

3、拦截所有的机器人:

User-agent: *

Disallow: /

4、禁止所有机器人访问特定目录:

User-agent: *

Disallow: /cgi-bin/

Disallow: /images/

Disallow: /tmp/

Disallow: /private/

5、仅禁止坏爬虫访问特定目录(BadBot用真实的名字代替):

User-agent: BadBot

Disallow: /private/

6、禁止所有机器人访问特定文件类型[2]:

User-agent: *

Disallow: /*.php$

Disallow: /*.js$

Disallow: /*.inc$

Disallow: /*.css$

三、robots协议的一些使用误区

1,假设网站上的所有文件都同意蜘蛛抓取,没有什么隐私文件可隐藏不见的。那是不是网站就可以不必要增加robots协议文件了呢?答案当然是否定的。如果不存在robots协议文件,那搜索引擎蜘蛛将会对网站所有页面都进行抓取,包括404页面,404页面抓取收录会对网站造成过多重复页面的负面。而且蜘蛛访问robots.txt的时候也是会给蜘蛛返回404错误。

2,robots协议文件中设置所有文件都可以被蜘蛛抓取,并不能增加网站的收录。网站程序中的一些脚本文件,CSS文件,IMG文件等等跟网站内容不相关的文件也会被蜘蛛抓取,并不会对网站收录有好的作用。甚至可能被认为内容与主题不符而被受到惩罚。那岂不是得不偿失。

3,过多蜘蛛对所有文件进行抓取,也完全是在浪费服务器的资源,造成服务器卡顿,反而会影响用户正常访问,同时对蜘蛛访问也有影响,如果蜘蛛抓取过慢会认为网站打开过慢,不仅仅导致整个站点的页面收录受到影响,而且会被受到网站服务器过慢惩罚。

四、什么样的文件可以设置不被蜘蛛抓取

网站中不需要搜索引擎蜘蛛抓取的文件有:后台管理文件、程序脚本、附件、数据库文件、编码文件、样式表文件、模板文件、导航图片和背景图片等等。

可以在robots.txt文件中作出如下设置:

User-agent: *

Disallow: /admin/ 后台管理文件

Disallow: /require/ 程序文件

Disallow: /attachment/ 附件

Disallow: /images/ 图片

Disallow: /data/ 数据库文件

Disallow: /template/ 模板文件

Disallow: /css/ 样式表文件

Disallow: /lang/ 编码文件

Disallow: /script/ 脚本文件

如果你的网站是动态网页,并且这些动态网页创建了静态副本,方便搜索蜘蛛更容易抓取。那么你需要在robots.txt文件里设置避免动态网页被蜘蛛索引,以保证这些网页不会被视为含重复内容。

robots.txt文件里还可以直接包括在sitemap文件的链接。就像这样:

Sitemap: http://www.gldadi.com/sitemap.xml

目前对此表示支持的搜索引擎公司有Google, Yahoo, Ask and MSN。而中文搜索引擎公司,显然不在这个圈子内。这样做的好处就是,站长不用到每个搜索引擎的站长工具或者相似的站长平台,去提交自己的sitemap文件,搜索引擎的蜘蛛自己就会抓取robots.txt文件,读取其中的sitemap路径,接着抓取其中相链接的网页。

合理使用robots.txt文件还能避免访问时出错。比如,不能让搜索者直接进入购物车页面。因为没有理由使购物车被收录,所以你可以在robots.txt文件里设置来阻止搜索者直接进入购物车页面。

五、robots协议文件的黑帽seo作用

禁止快照编辑,要防止所有搜索引擎显示您网站的快照,请将此元标记置入网页<HEAD> 部分:

<meta name="robots" content="noarchive">

要允许其他搜索引擎显示快照,但仅防止百度搜索引擎显示,请使用以下标记:

<meta name="Baiduspider" content="noarchive">

六、常见Robots名称

google蜘蛛:googlebot

百度蜘蛛:baiduspider

搜狗蜘蛛:sogouspider

360蜘蛛:360Spider

yahoo蜘蛛:slurp

alexa蜘蛛:ia_archiver

msn蜘蛛:msnbot

altavista蜘蛛:scooter

lycos蜘蛛:lycos_spider_(t-rex)

alltheweb蜘蛛:fast-webcrawler/

inktomi蜘蛛:slurp

七、robots协议的一些无法解决的问题

Robots协议并不是多么高级的技术,而只是互联网中一种各个机构互相尊重的协议,好比私家花园的门口挂着“闲人免进”,尊重者绕道而行,不尊重者依然可以推门而入。目前,Robots协议在实际使用中,还存在一些无法解决的问题。

比如:robots.txt本身也是网站文件,也是需要抓取的,蜘蛛爬虫出于效率考虑,一般不会每次抓取网站网页之前都爬取一遍robots.txt,本来robots.txt更新就不频繁。通常爬虫的做法是先抓取一次,解析后缓存下来,而且是相当长的时间不会再次抓取robots.txt。假设网站管理员更新了robots.txt,修改了某些规则,但是对爬虫来说并不会立刻生效,只有当爬虫下次抓取robots.txt之后才能看到最新的内容。尴尬的是,爬虫下次抓取robots.txt的时间并不是由网站管理员控制的。所以,有些搜索引擎提供了web 工具可以让网站管理员通知搜索引擎那个url发生了变化,建议重新抓取。注意,此处是建议,即使你通知了搜索引擎,搜索引擎何时抓取仍然是不确定的,只是比完全不通知要好点。至于好多少,那就看搜索引擎的良心和技术能力了。

在互联网的大部分公司,有些爬虫不太遵守或者完全忽略robots.txt,不排除开发人员能力的问题,比如说根本不知道robots.txt。另外,本身robots.txt不是一种强制措施,也根本没有办法强制阻止爬虫抓取网站内容,当然如果网站有数据需要保密,必须采取加密的技术措施,比如说:用户验证,内容加密传输,ip白名单黑名单拦截,访问频率控制拦截等等技术手段来对恶意爬取进行规避。

在互联网世界中,每天每时每刻都有不计其数的爬虫在日夜不息地爬取数据,其中恶意爬虫的数量远远高于非恶意爬虫。但是并不是每个爬虫都会主动遵守Robots协议。

恶意爬虫可以带来很多潜在威胁,比如电商网站的商品信息被爬取可能会被竞争对手利用,过多的爬虫还会占用带宽资源、甚至导致网站宕机。

反恶意爬虫是一件漫长而艰巨的任务,如果依靠自身实力难以解决,可以借助业务风险分析平台来反恶意爬虫,根据自己的需求来定制功能。而且对于恶意爬虫是可以对其进行电子取证,如果有涉及到对自身网站有造成经济损失的,可以对恶意爬虫所属公司个人进行起诉要求赔偿的。

发表回复

后才能评论