一、robots.txt是什么?
 
  robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被搜索引擎访问的部分,或者指定搜索引擎只收录指定的内容。
  当一个搜索引擎(又称搜索机器人或蜘蛛程序)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。
 
二、robots.txt的作用
 
  1、引导搜索引擎蜘蛛抓取指定栏目或内容;
  2、网站改版或者URL重写优化时候屏蔽对搜索引擎不友好的链接;
  3、屏蔽死链接、404错误页面;
  4、屏蔽无内容、无价值页面;
  5、屏蔽重复页面,如评论页、搜索结果页;
  6、屏蔽任何不想被收录的页面;
  7、引导蜘蛛抓取网站地图;
 
三、Robots的语法(三个语法和两个通配符)
  
  三个语法如下:
  
  1、User-agent:(定义搜索引擎)
  示例:
   User-agent: *(定义所有搜索引擎)
   User-agent: Googlebot (定义谷歌,只允许谷歌蜘蛛爬取)
   User-agent: Baiduspider  (定义百度,只允许百度蜘蛛爬取)
   不同的搜索引擎的搜索机器人有不同的名称,谷歌:Googlebot、百度:Baiduspider、MSN:MSNbot、Yahoo:Slurp。
  
  2、Disallow:(用来定义禁止蜘蛛爬取的页面或目录)
  示例:
    Disallow: /(禁止蜘蛛爬取网站的所有目录 "/" 表示根目录下)
    Disallow: /admin (禁止蜘蛛爬取admin目录)
    Disallow: /abc.html (禁止蜘蛛爬去abc.html页面)
    Disallow: /help.html (禁止蜘蛛爬去help.html页面)
  
  3、Allow:(用来定义允许蜘蛛爬取的页面或子目录)
  示例:
    Allow: /admin/test/(允许蜘蛛爬取admin下的test目录)
    Allow: /admin/abc.html(允许蜘蛛爬去admin目录中的abc.html页面)
 
  两个通配符如下:
  
  4、匹配符 “$”
    $ 通配符:匹配URL结尾的字符
  
  5、通配符 “*”
    * 通配符:匹配0个或多个任意字符
 
四、robots.txt 综合示例
 
  1、禁止搜索引擎抓取特定目录
    在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。
      User-agent: *
      Disallow: /admin/
      Disallow: /tmp/
      Disallow: /abc/
 
  2、禁止admin目录,但允许抓取admin目录下的seo子目录
      User-agent: *
      Allow: /admin/seo/
      Disallow: /admin/
 
  3、禁止抓取/abc/目录下的所有以".htm”为后缀的URL(包含子目录)
      User-agent: *
      Disallow: /abc/*.htm$
 
  4、禁止抓取网站中所有的动态页面
      User-agent: *
      Disallow: /*?*
      屏蔽所有带“?”的文件,这样就屏蔽所有的动态路径。
 
  5、禁止百度蜘蛛抓取网站所有的图片:
      User-agent: Baiduspider
      Disallow: /*.jpg$
      Disallow: /*.jpeg$
      Disallow: /*.gif$
      Disallow: /*.png$
      Disallow: /*.bmp$
 
  6、要在阻止网站页面被抓取的同时仍然在这些页面上显示 AdSense 广告
      User-agent: *
      Disallow: /folder1/
      User-agent: Mediapartners-Google
      Allow: /folder1/
      请禁止除 Mediapartners-Google 以外的所有漫游器。 这样可使页面不出现在搜索结果中,同时又能让 Mediapartners-Google 漫游器分析页面,从而确定要展示的广告。 Mediapartners-Google 漫游器并不与其他 Google User-agent 共享网页。
 
五、注意事项
 
  1、robots.txt 文件必须放在网站的根目录,不可以放在子目录。
     以WEB开发者网站为例:比如通过 http://www.admin10000.com/robots.txt 你就可以访问 admin10000.com的robots.txt文件了。
 
  2、robots.txt 文件名命名必须小写,记得在robot面加“s”。
 
  3、User-agent、Allow、Disallow的 “:” 后面有一个字符的空格。
 
  4、路径后面加斜杠“/” 和不加斜杠的是有区别的
     Disallow: /help  
             禁止蜘蛛访问 /help.html、/helpabc.html、/help/index.html
       Disallow: /help/ 
       禁止蜘蛛访问 /help/index.html。 但允许访问 /help.html、/helpabc.html
 
  5、Disallow与Allow行的顺序是有意义的:
    举例说明:
    允许蜘蛛访问 /admin/ 目录下的seo文件夹
    User-agent: *
    Allow: /admin/seo/
    Disallow: /admin/
    如果Allow 和 Disallow 的顺序调换一下:
    User-agent: *
    Disallow: /admin/
    Allow: /admin/seo/
    蜘蛛就无法访问到 /admin/ 目录下的 seo 文件夹,因为第一个 Disallow: /admin/ 已匹配成功。
 
六、关于Robots Meta
  
  Robots.txt文件主要是限制整个站点或者目录的搜索引擎访问情况,而Robots Meta标签则主要是针对一个个具体的页面。和其他的META标签(如使用的语言、页面的描述、关键词等)一样,Robots Meta标签也是放在页面中,专门用来告诉搜索引擎ROBOTS如何抓取该页的内容。
  Robots Meta 标签中没有大小写之分,name="Robots" 表示所有的搜索引擎,可以针对某个具体搜索引擎(如google)写为 name="Googlebot", content部分有四个指令选项:index、noindex、follow、nofollow,指令间以 “,” 分隔。
  Index 指令告诉搜索机器人抓取该页面;
  NoIndex命令:告诉搜索引擎不允许抓取这个页面
  Follow 指令表示搜索机器人可以沿着该页面上的链接继续抓取下去;
  NoFollow命令:告诉搜索引擎不允许从此页找到链接、拒绝其继续访问。
  Robots Meta 标签的缺省值是Index和Follow;
  根据以上的命令,我们就有了一下的四种组合:
  <meta name="robots" content="index,follow"/> 
  可以抓取本页,而且可以顺着本页继续索引别的链接
  <meta name="robots" content="noindex,follow"/> 
  不许抓取本页,但是可以顺着本页抓取索引别的链接
  <neta name="robots" content="index,nofollow"/> 
  可以抓取本页,但是不许顺着本页抓取索引别的链接
  <meta name="robots" content="noindex,nofollow"/> 
  不许抓取本页,也不许顺着本页抓取索引别的链接。
  如果是 <meta name="robots" content="noindex,nofollow"/> 形式的话,可以写成:
  <meta name="robots" content="none"/>
  如果是 <meta name="robots" content="index,follow"/> 形式的话,可以写成:
  <meta name="robots" content="all"/>
 
七、关于 rel="nofollow"
  将"nofollow"放在超链接中,告诉搜索引擎不要抓取特定的链接。
  如某博客上有垃圾评论:
  <a href="URL">灌水</a>
  以下操作,即进行了 nofollow:
  <a href="URL" rel="nofollow" >灌水</a>

网站之robots.txt文件的更多相关文章

  1. 网站的robots.txt文件

    什么是robots.txt? robots.txt是一个纯文本文件,是爬虫抓取网站的时候要查看的第一个文件,一般位于网站的根目录下.robots.txt文件定义了爬虫在爬取该网站时存在的限制,哪些部分 ...

  2. 如何设置网站的robots.txt

    做过网站优化的朋友都知道,搜索引擎蜘蛛爬行抓取网站时首先会去访问根目录下的robots.txt文件,如果robots文件存在,则会根据robots文件内设置的规则进行爬行抓取,如果文件不存在则会顺着首 ...

  3. 网站 robots.txt 文件编写

    网站 robots.txt 文件编写 Intro robots.txt 是网站根目录下的一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的 ...

  4. 网站SEO优化之Robots.txt文件写法。

    作为网站开发者或网站管理员一定知道网站对搜索引擎的优化有多重要,好的网站不仅要有漂亮的界面,良好的用户体验,还要有较高的更新频率.要被百度.google这样的搜索引擎大量收录,才能增加网站展示量,访问 ...

  5. robots.txt文件配置和使用方法详解

    robots.txt文件,提起这个概念,可能不少站长还很陌生:什么是robots.txt文件?robots.txt文件有什么作用?如何配置robots.txt文件?如何正确使用robots.txt文件 ...

  6. 没有robots.txt文件是否会影响收录呢

    Spider在抓取您的网站之前,会访问您的robots.txt 文件,以确定您的网站是否会阻止 蜘蛛抓取任何网页或网址.如果您的 robots.txt 文件存在但无法访问(也就是说,如果它没有返回 2 ...

  7. 不可不知的robots.txt文件

    robots.txt基本介绍 robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容. 当一个搜索机器人(有的叫搜索 ...

  8. Python 网络爬虫 010 (高级功能) 解析 robots.txt 文件

    解析 robots.txt 文件 使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程 Python 的集成开发环境:PyCharm 2016 ...

  9. 给自己的网站加上robots.txt

    今天给自己的网站加了一个robots.txt,在网上收集整理了一些资料,给自己网站也加上了robots.txt ! 顺便给大家分享一下! 一.robots.txt是什么? robots.txt是一个纯 ...

随机推荐

  1. Java高级教程02

    目录 1.Java线程 1.1. 多线程和多进程 1.2. 线程的执行过程: 1.3. 创建线程的方法 (1). 方法1:通过run() (2). 方法2: 复写Runnable接口(推荐) 1.4. ...

  2. .Net环境下调用ProtoBuf

    一.什么是ProtoBuf protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台.它是一种类似于xml.json等类似作用的交互格式.由于它是一种 ...

  3. 001学习Python的ABC模块(转)

    http://yansu.org/2013/06/09/learn-Python-abc-module.html 1.abc模块作用 Python本身不提供抽象类和接口机制,要想实现抽象类,可以借助a ...

  4. Red Hat 7.2 RPM安装Mysql 5.7.12

    安装Red Hat  7.2  开发包Java包全部安装 下载Mysql  5.7.12 wget  http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5 ...

  5. P3200 [HNOI2009]有趣的数列--洛谷luogu

    ---恢复内容开始--- 题目描述 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满足a1<a3& ...

  6. python文件流

    打开文件 文件的基本方法 迭代文件内容 打开文件 打开文件,可以使用自动导入的模块io中的函数open.函数open将文件名作为唯一必不可少的参数,并返回一个文件对象.如果只指定一个文件名,则获得一个 ...

  7. [转]关于oracle sql语句查询时表名和字段名要加双引号的问题

    oracle初学者一般会遇到这个问题.   用navicat可视化创建了表,可是就是不能查到!   后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引 ...

  8. Postman的Tests标签测试

    接口测试最重要的就是返回数据的检查,一个简单的接口,我们可以肉眼检查返回数据,但接口一旦多起来且复杂,每次的检查都会很费劲,此时我们就需要postman 的tests模块来代替 postman面板: ...

  9. 联合索引在B+树上的结构

    一级索引 二级联合索引 假设这是一个多列索引(col1, col2,col3),对于叶子节点,是这样的:  PS:该图改自<MySQL索引背后的数据结构及算法原理>一文的配图. 也就是说, ...

  10. c# 利用百度图像处理【人像分割】一键抠图

    百度AI开放平台-人像分割: http://ai.baidu.com/tech/body/seg 注意本文后面的话,百度这个技术效果太差劲了,国外这 https://www.remove.bg/ 个比 ...