LEN

【转】Robots协议的那些事
由于本站文章搜索引擎搜索机器人(以下简称:爬虫)爬取效果不是很理想,出现了导航链接大量被爬取,而文章链接爬取较少。...
扫描右侧二维码阅读全文
13
2017/01

【转】Robots协议的那些事

由于本站文章搜索引擎搜索机器人(以下简称:爬虫)爬取效果不是很理想,出现了导航链接大量被爬取,而文章链接爬取较少。所以准备对本站加入SEO,其实也就是引入了 Robots协议Robots协议(也称为爬虫协议、机器人协议等)的全称是「网络爬虫排除标准」(Robots Exclusion Protocol)。网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,而robots.txt文本文件 就是Robots协议的表述。<!--more-->

Robots协议代表了互联网领域的一种契约精神,互联网企业只有遵守这一规则,才能保证网站及用户的隐私数据不被侵犯,违背Robots协议将带来巨大安全隐忧——例如,百度诉奇虎360违反“Robots协议”抓取、复制其网站内容侵权一案

爬取过程

互联网的网页都是通过超链接互相关联的,进而形成了网页的网状结构。所以爬虫的工作方法就如蜘蛛在网络上沿着超链接按照一定的爬取规则爬取网页。

alt

基本流程大致为:

1) 喂给爬虫一堆URL,称之为种子Seeds);

2) 爬虫爬取Seeds分析HTML网页,抽取其中的超链接

3) 爬虫接着爬取这些新发现的超链接指向的HTML网页;

4) 对过程 2),3)循环往复

协议作用

Robots协议主要功能为以下4项:

1) 网站通过该协议告诉搜索引擎哪些页面可以抓取,哪些页面不能;

2) 可以屏蔽一些网站中比较大的文件,如:图片,音乐,视频等,节省服务器带宽;

3) 可以屏蔽站点的一些死链接,方便搜索引擎抓取网站内容;

4) 设置网站地图导向,方便引导蜘蛛爬取页面;

可以想象,如果一个站点没有引入Robots协议,那么爬虫就会漫无目地爬取,爬取结果一般不尽人意。反之,将我们站点内容通过Robots协议表述出来并引入Robots协议,爬虫就会按照我们的意愿进行爬取。

协议原则

Robots协议是国际互联网界通行的 <span class="error">道德规范</span> ,基于以下 原则 建立:

1) 搜索技术应服务于人类,同时尊重信息提供者的意愿,并维护其隐私权;

2) 网站有义务保护其使用者的个人信息和隐私不被侵犯;

协议表述

Robots协议是通过robots.txt文件来进行表述的,robots.txt文件规范见这里robots.txt文件是一个文本文件,使用任何一个常见的文本编辑器都可以对它进行查看与编辑。当然,也可以使用 Robots文件生成工具 方便地生成我们所需要的robots.txt文件。

提示: robots.txt文件应该放置在网站根目录下。

协议表述规范

对规范大致描述为:

User-agent: *                               # *代表所有的搜索引擎种类,是一个通配符,其他常用值:百度-Baiduspider,搜狗-sogou spider,谷歌-Googlebot
Disallow: /admin/                           # 禁止抓取admin目录下面的目录
Disallow: /require/                         # 禁止抓取require目录下面的目录
Disallow: /static/                          # 禁止抓取static目录下面的目录
Disallow: /cgi-bin/*.htm                    # 禁止抓取/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。
Disallow: /*?*                              # 禁止抓取网站中所有包含问号 (?) 的网址
Disallow: /.jpg$                            # 禁止抓取网站中所有的.jpg格式的图片
Disallow: /public/404.html                  # 禁止爬取public文件夹下面的404.htm文件。
Allow: /home/                              # 允许抓取home目录下面的目录
Allow: /home                                # 允许抓取home的整个目录
Allow: .htm$                                # 允许抓取以".htm"为后缀的URL。
Allow: .gif$                                # 允许抓取gif格式图片
Sitemap: http://你的网址/map.xml             # 建议加入xml格式的文件,这个是谷歌标准格式
Sitemap: http://你的网址/map.html            # 建议加入html格式的文件,这个是百度标准格式

一般情况下不需要指定Allow这项配置。

网站地图规范

  • XML格式

这里参照了百度站长的 官方文档,大致描述如下:

<?xml version="1.0" encoding="utf-8"?>
<!-- XML文件需以utf-8编码-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!--必填标签-->
    <url>
        <!--必填标签,这是具体某一个链接的定义入口,每一条数据都要用<url>和</url>包含在里面,这是必须的 -->
        <loc>http://www.yoursite.com/yoursite.html</loc>
        <!--必填,URL链接地址,长度不得超过256字节-->
        <lastmod>2009-12-14</lastmod>
        <!--可以不提交该标签,用来指定该链接的最后更新时间-->
        <changefreq>daily</changefreq>
        <!--可以不提交该标签,用这个标签告诉此链接可能会出现的更新频率 -->
        <priority>0.8</priority>
        <!--可以不提交该标签,用来指定此链接相对于其他链接的优先权比值,此值定于0.0-1.0之间-->
    </url>
</urlset>
  • HTML格式

主体结构为完整的HTML,将需要被爬的链接以a标签的形式加入到body中即可。

... ...
<body>
    <a href="https://fanhaobai.com" title="首页">
    <a href="https://fanhaobai.com/post/robots.html" title="Robots协议的那些事">
    ... ...
</body>
... ...

本站配置

  • 本站博客

本站拒绝了雅虎爬虫的爬取,对其他的爬虫,themestatic目录下的2个逻辑代码目录apimodule和4个静态资源目录fontcssimgjs做了限制爬取,对static目录下upload做了允许爬取处理,并配置了后缀为.xml.htm文件的站点地图。

# robots.txt for fanhaobai.com 2017.01.12
# yahoo disallow
User-agent: Slurp
Disallow: /
# other allow
User-agent: *
Disallow: /admin
Disallow: /theme/
Disallow: /static/api/
Disallow: /static/module/
Disallow: /static/font/
Disallow: /static/css/
Disallow: /static/img/
Disallow: /static/js/
Sitemap: http://fanhaobai.com/map.xml
Sitemap: http://fanhaobai.com/map.html

查看本站的网站地图HTML格式XML格式

  • 本站维基
User-agent: *
Disallow: /

总结

Robots协议只是爬虫抓取站点内容的一种规则,需要搜索引擎爬虫的配合才行,并不是每个搜索引擎爬虫都遵守的。但是,目前看来,绝大多数的搜索引擎爬虫都遵守Robots协议的规则。

值得注意的是,robots.txt文件虽说是提供给爬虫使用,但是正如它的名称——网络爬虫排除标准,它具有消极的排爬虫抓取作用。所以百度官方建议, [仅当网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件]()

推荐一篇相关的文章:http://lusongsong.com/reed/732.html

最后修改:2017 年 02 月 08 日 02 : 51 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论