网络爬虫之Robots协议

一.什么是Robots协议

    Robots协议的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站经过Robots协议告诉搜索引擎哪些页面能够抓取,哪些页面不能抓取。html

    一句话归纳就是,站点与搜索引擎爬虫之间的"君子协议"。数据库

二.如何使用Robots协议

    通常有两种方法。bash

    (1)在网站的根目录下放置一个文件,起名为 robots.txt ,其中规定了哪些内容能够爬取和哪些内容不想被抓取:网络

    robots.txt 必须放在站点的根目录下,文件名必须小写。在 robots.txt 文件中,至少要有一条 Disallow 记录。若是 robots.txt 文件为空,则容许全部搜索引擎Robots都是开放的。ide

    robots.txt 文件中的记录一般以一行或多行 User-agent 开始,后面加上若干 Disallow 行,解释以下:网站

    a.User-agent:指定搜索引擎 robots 的名字,常见的有Baiduspider、Sogouspider、360Spider等。若是有多条 User-agent 记录,说明有多个robots会受到该协议的限制。至少要有一条 User-agent 记录。若是该值为 * ,则该协议对全部爬虫都有效。搜索引擎

    b.Disallow:设置不但愿被访问到的URL,能够是完整的路径,也能够是相对路径。任何以 Disallow 开头的URL均不会被机器人访问到。好比:"Disallow:/product",则对 "/product01.html"和"/product/01.html"都不容许机器人访问。而"Disallow:/product/",则容许访问"/product01.html",但不能访问"/product/01.html"。spa

    (2)在网页的Meta元标签里面设置 Robots Meta 标签:code

    第一种方法是粗粒度的方法,设置 Robots Meta 的值来限制爬虫访问则是一种细粒度的方法,把限制细化到了每一个网页。htm

    Content部分有6个指令选项:all、index、noindex、follow、nofollow、none,指令组合使用时用","分隔。

        index:容许被搜索引擎索引进数据库;

        follow:容许经过此网页的连接继续索引其它网页;

        all:默认值,至关于"index,follow",容许被搜索引擎索引进数据库,容许经过此网页的连接继续索引其它网页;

        noindex:不被搜索引擎索引进数据库,但搜索引擎能够经过此网页的连接继续索引其它网页;

        nofollow:被搜索引擎索引进数据库,但搜索引擎不能够经过此网页的连接继续索引其它网页;

        none:不被搜索引擎索引进数据库,且搜索引擎不能够经过此网页的连接继续索引其它网页,至关于"noindex,nofollow"。

    Robots Meta标签放在页面的<head></head>中,告诉搜索引擎Robots如何抓取该页的内容。
    <meta name="robots" content="none">:防止全部搜索引擎访问。
    <meta name="Baiduspider" content="noindex,nofollow">:指定仅限制百度搜索引擎访问。

三.Robots使用示例

    (以淘宝网为例:https://www.taobao.com/)

    淘宝网的robots文件:https://www.taobao.com/robots.txt

User-agent:  Baiduspider
Allow:  /article
Allow:  /oshtml
Disallow:  /product/
Disallow:  /

User-Agent:  Sogouspider
Allow:  /article
Allow:  /oshtml
Allow:  /product
Disallow:  /

#...略去其余爬虫详情

User-Agent:  *
Disallow:  /

    如上所示:

    对于百度搜索引擎,不容许访问,限制效果图:

    对于搜狗搜索引擎,容许访问,效果图:

    能够看到,对比很明显,百度搜索引擎机器人被限制了。

相关文章
相关标签/搜索