分类目录网-汇聚各行业优秀网站大全! VIP快审 免费注册 会员登录
首页 新闻资讯 SEO优化

带你玩转robots协议 robots协议怎么写 新手必备(2)

时间:2017-05-21 15:28 来源:未知 作者:分类目录网 人气:
【导读】:最简单的robots.txt只有两条规则: 1.User-agent:指定对哪些爬虫生效 2.Disallow:指定要屏蔽的网址 整个文件分为x节,一节由y个User-agent行和z个Disallow行组成。一节就表示对User-agent行指定的y个爬虫屏蔽z个...

    最简单的robots.txt只有两条规则:

    1.User-agent:指定对哪些爬虫生效

    2.Disallow:指定要屏蔽的网址

    整个文件分为x节,一节由y个User-agent行和z个Disallow行组成。一节就表示对User-agent行指定的y个爬虫屏蔽z个网址。这里x>=0,y>0,z>0。x=0时即表示空文件,空文件等同于没有robots.txt。

    下面详细介绍这两条规则:

    User-agent

    爬虫抓取时会声明自己的身份,这就是User-agent,没错,就是http协议里的User-agent。robots.txt利用User-agent来区分各个引擎的爬虫。

    举例说明:google网页搜索爬虫的User-agent为Googlebot,下面这行就指定google的爬虫。

    User-agent:Googlebot

    如果想指定所有的爬虫怎么办?不可能穷举啊,可以用下面这一行:

    User-agent: *

    可能有的同学要问了,我怎么知道爬虫的User-agent是什么?这里提供了一个简单的列表:爬虫列表当然,你还可以查相关搜索引擎的资料得到官方的数据,比如说google爬虫列表,百度爬虫列表Disallow

    Disallow 行列出的是要拦截的网页,以正斜线 (/) 开头,可以列出特定的网址或模式。

    要屏蔽整个网站,使用正斜线即可:

    Disallow: /

    要屏蔽某一目录以及其中的所有内容,在目录名后添加正斜线:

    Disallow: /无用目录名/

    要屏蔽某个具体的网页,就指出这个网页。

    Disallow: /网页。html

    Disallow还可以使用前缀和通配符。

    要屏蔽目录a1-a100,可以使用上面的方式写100行,或者Disallow:/a

    但是需要注意,这样会把任何以a开头的目录和文件也屏蔽,慎用。如果需要屏蔽a1-a100,但是不屏蔽a50,怎么办?同学们可以思考一下,这个问题我们留到下一节。

    要阻止特定类型的文件(如 .gif),请使用以下内容:

    Disallow: /*.gif$

    *匹配任意个字符,$匹配url结束,具体就不解释了吧,不了解的同学去自学一下通配符。

    提示一下,Disallow的内容区分大小写。例如,Disallow:/junkfile.asp 会屏蔽 junkfile.asp,却会允许Junk_file.asp。

    最最后,通配符不是所有搜索引擎都支持,使用要小心。没办法,谁让robots.txt没有一个大家都承认的标准呢。

    实例 ###

    百度网页搜索

    User-agent: Baiduspider

    Disallow: /baidu

    Disallow: /s?

    User-agent: Googlebot

    Disallow: /baidu

    Disallow: /s?

    Disallow: /shifen/

    Disallow: /homepage/

    Disallow: /cpro

    User-agent: MSNBot

    Disallow: /baidu

    Disallow: /s?

    Disallow: /shifen/

    Disallow: /homepage/

    Disallow: /cpro

    …

    现在读懂这个应该毫无压力了吧,顺便说一句百度的robots.txt比较啰嗦,有兴趣的同学可以简化一下。

    高阶玩法

    首先声明:高级玩法不是所有引擎的爬虫都支持,一般来说,作为搜索引擎技术领导者的谷歌支持的最好。

    例子:google robots.txt

    allow

    还记得上面的问题吗?如果需要屏蔽a1-a100,但是不屏蔽a50,怎么办?

    方案1:

    Disallow:/a1/

    Disallow:/a2/

    …

    Disallow:/a49/

    Disallow:/a51/

    …

    Disallow:/a100/

    方案2:

    Disallow:/a

    Allow:/a50/

    ok,allow大家会用了吧。

    顺便说一句,如果想屏蔽a50下面的文件private.html,咋整?

    Disallow:/a

    Allow:/a50/

    Disallow:/a50/private.html

    聪明的你一定能发现其中的规律,对吧?谁管的越细就听谁的。

    sitemap

    前 面说过爬虫会通过网页内部的链接发现新的网页。但是如果没有连接指向的网页怎么办?或者用户输入条件生成的动态网页怎么办?能否让网站管理员通知搜索引擎 他们网站上有哪些可供抓取的网页?这就是sitemap,最简单的 Sitepmap 形式就是 XML 文件,在其中列出网站中的网址以及关于每个网址的其他数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度等等),利用这些信息搜索引擎 可以更加智能地抓取网站内容。

    sitemap是另一个话题,足够开一篇新的文章聊的,这里就不展开了,有兴趣的同学可以参考sitemap新的问题来了,爬虫怎么知道这个网站有没有提供sitemap文件,或者说网站管理员生成了sitemap,(可能是多个文件),爬虫怎么知道放在哪里呢?

相关推荐

版权声明:

1、本文系会员投稿或转载自网络,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场;

2、本站仅提供信息发布平台,不承担相关法律责任;

3、若侵犯您的版权或隐私,请联系本站管理员删除。

分类目录 WWW.FLML.CN 皖ICP备19001157号-5