robots协议

阅读 / 问答 / 标签

浏览器需要遵守Robots协议吗

浏览器需要遵守Robots协议。协议简单理解可以理解成大家共同遵守的一个标准,只要是网页浏览器肯定需要支持最常见的协议,一些不常用的就看各浏览器是否支持了。Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(RobotsExclusionProtocol)。

我在网站的根目录里面建立了一个子目录。做了一个独立的站绑定的一级域名。那怎么写robots协议才能

要搜索引擎不爬行主站,在robots.txt里加入以下程序:User-agent:*Disallow:/然后把以上这个robots.txt放到主站的根目录.至于子目录这个站,不需要特别的robots.txt,只要有外链连接到你的子目录这个站的一级域名,搜索引擎就会自动爬行了.不然也可以自己到搜索引擎提交域名.

robots协议的介绍

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

robots协议的产生

robots.txt并不是某一个公司制定的,而是早在20世纪93、94年就早已出现,当时还没有Google。真实Robots协议的起源,是在互联网从业人员的公开邮件组里面讨论并且诞生的。即便是今天,互联网领域的相关问题也仍然是在一些专门的邮件组中讨论,并产生(主要是在美国)。1994年6月30日,在经过搜索引擎人员以及被搜索引擎抓取的网站站长共同讨论后,正式发布了一份行业规范,即robots.txt协议。在此之前,相关人员一直在起草这份文档,并在世界互联网技术邮件组发布后,这一协议被几乎所有的搜索引擎采用,包括最早的altavista,infoseek,后来的google,bing,以及中国的百度,搜搜,搜狗等公司也相继采用并严格遵循。Robot,又称Spider,是搜索引擎自动获取网页信息的电脑程序的通称。Robots协议的核心思想就是要求Robot程序不要去检索那些站长们不希望被直接搜索到的内容。将约束Robot程序的具体方法规范成格式代码,就成了Robots协议。一般来说,网站是通过Robots.txt文件来实现Robots协议。自有搜索引擎之日起,Robots协议已是一种目前为止最有效的方式,用自律维持着网站与搜索引擎之间的平衡,让两者之间的利益不致过度倾斜。它就像一个钟摆,让互联网上的搜索与被搜索和谐相处。

Python爬虫必须遵守robots协议,否则等于犯罪

1、robots协议是一种存放于网站根目录下的ASCII编码的文本文件。用于对外宣誓主权,规定按照允许范畴访问网站,有效保护网站的隐私。所以您想通过技术手段访问网站的时候,请首先查看robots.txt文件,它告诉你哪些可以访问,哪些信息是不允许访问的。(Robots协议是国际互联网界通行的道德规范) 2、robots主要涉及以下三个部分:第一种:禁止所有搜索引擎访问网站的任何内容 User-agent: * Disallow: / 第二种:禁止某个特定的搜索引擎访问网站的任何内容 User-agent: Baiduspider Disallow: / 第三种:允许所有搜索引擎访问网站的任何内容 User-agent: * Allow: / 第四种:禁止部分内容被访问(tmp目录及下面的内容都禁止了) User-agent: * Disallow: /tmp 第五种:允许某个搜索引擎的访问 User-agent: Baiduspider allow:/ 第六种:部分允许,部分不允许访问 User-agent: Baiduspider Disallow: /tmp/bin User-agent:* allow:/tmp 希望以上总结对您有帮助!!!!!

Robots协议-"盗亦有道"

根据协议,网站管理员可以在网站域名的根目录下放一个robots.txt 文本文件,里面可以指定不同的网络爬虫能访问的页面和禁止访问的页面,指定的页面由 正则表达式 表示。网络爬虫在采集这个网站之前,首先获取到这个文件,然后解析到其中的规则,然后根据规则来采集网站的数据。 注意,这个协议的存在更多的是需要网络爬虫去遵守,而起不到防止爬虫的功能。 互联网上的网页是通过超级链接互相关联起来的,从而形成了网页的网状结构。爬虫的工作方式就像蜘蛛在网上沿着链接爬来爬去,最基本的 流程 可以简化如下: 了解了上面的流程就能发现:对爬虫来说网站非常 被动 ,只有老老实实被抓取的份。 所以,对于网站的管理者来说,就存在这样的需求: 某些路径下是个人隐私或者网站管理使用,不想被搜索引擎抓取,比如说 日本爱情动作片 ; 不喜欢某个搜索引擎,不愿意被他抓取,最有名的就是之前 淘宝不希望被百度抓取 ; 小网站使用的是公用的虚拟主机,流量有限或者需要付费,希望搜索引擎抓的温柔点; 某些网页是动态生成的,没有直接的链接指向,但是希望内容被搜索引擎抓取和索引。 网站内容的所有者是网站管理员,搜索引擎应该尊重所有者的意愿,为了满足以上等等,就需要提供一种网站和爬虫进行沟通的途径,给网站管理员表达自己意愿的机会。有需求就有供应, robots 协议 就此诞生。 京东的Robots协议 https://www.jd.com/robots.txt 百度的Robots协议 上面, *代表所有,/代表根目录 既然网络爬虫在爬取一个网站之前,要先获取到这个文件,然后解析到其中的规则,那么,Robots就必须要有一套通用的语法规则。 最简单的robots.txt只有两条规则: User-agent:指定对哪些爬虫生效 Disallow:指定要屏蔽的网址 先说User-agent,爬虫抓取时会声明自己的身份,这就是User-agent,没错,就是http协议里的User-agent。robots.txt利用User-agent来区分各个引擎的爬虫,比如说google网页搜索爬虫的User-agent为Googlebot。 可能有读者要问了,我怎么知道爬虫的User-agent是什么?你还可以查 相关搜索引擎的资料 得到官方的数据,比如说百度的爬虫列表是这样的: Disallow 行列出的是要拦截的网页,以正斜线 (/) 开头,可以列出特定的网址或模式。要屏蔽整个网站,使用正斜线即可;要屏蔽某一目录以及其中的所有内容,在目录名后添加正斜线;要屏蔽某个具体的网页,就指出这个网页。 下面介绍一些实例: 或者也可以建一个空文件 "/robots.txt" file。 我们再来结合两个真实的范例来学习一下。先看这个例子: 这个是淘宝网的Robots协议内容,相信你已经看出来了,淘宝网禁止百度的爬虫访问。 再来看一个例子: 这个稍微复杂点,京东有2个目录不希望所有的爬虫来抓。同时,京东完全屏蔽了一淘网的蜘蛛(EtaoSpider是一淘网的蜘蛛)。 sitemap 爬虫会通过网页内部的链接发现新的网页。但是如果没有链接指向的网页怎么办?或者用户输入条件生成的动态网页怎么办?能否让网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页?这就是 sitemap , 最简单的 Sitepmap 形式就是 XML 文件 ,在其中列出网站中的网址以及关于每个网址的其他数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度等等),利用这些信息搜索引擎可以更加智能地抓取网站内容。 新的问题 来了,爬虫怎么知道这个网站有没有提供sitemap文件,或者说网站管理员生成了sitemap,(可能是多个文件),爬虫怎么知道放在哪里呢? 由于robots.txt的位置是固定的,于是大家就想到了把sitemap的位置信息放在robots.txt里。这就成为robots.txt里的新成员了。 节选一段google robots.txt: Sitemap: http://www.gstatic.com/cultur... Sitemap: http://www.google.com/hostedn... 插一句,考虑到一个网站的网页众多,sitemap人工维护不太靠谱,google提供了工具可以自动生成sitemap。 meta tag 其实严格来说这部分内容不属于robots.txt。 robots.txt的初衷是为了让网站管理员管理可以出现在搜索引擎里的网站内容。但是,即使使用 robots.txt文件让爬虫无法抓取这些内容,搜索引擎也可以通过其他方式找到这些网页并将它添加到索引中。例如,其他网站仍可能链接到该网站。因此,网页网址及其他公开的信息(如指向相关网站的链接中的定位文字或开放式目录管理系统中的标题)有可能会出现在引擎的搜索结果中。如果想彻底对搜索引擎 隐身 那咋整呢?答案是:元标记,即meta tag。 比如要完全阻止一个网页的内容列在搜索引擎索引中(即使有其他网站链接到此网页),可使用 noindex 元标记。只要搜索引擎查看该网页,便会看到 noindex 元标记并阻止该网页显示在索引中,这里注意 noindex 元标记提供的是一种逐页控制对网站的访问的方式。 要防止所有搜索引擎将网站中的网页编入索引,在网页的部分添加: 这里的 name取值 可以设置为某个搜索引擎的 User-agent 从而指定屏蔽某一个搜索引擎。 除了noindex外,还有其他元标记,比如说nofollow,禁止爬虫从此页面中跟踪链接。详细信息可以参考Google支持的元标记,这里提一句:noindex和nofollow在 HTML4.01规范 里有描述,但是其他tag的在不同引擎支持到什么程度各不相同,还请读者自行查阅各个引擎的说明文档。 Crawl-delay 除了控制哪些可以抓哪些不能抓之外,robots.txt还可以用来控制爬虫抓取的速率。如何做到的呢?通过设置爬虫在两次抓取之间等待的秒数。这种操作可以进行缓解服务器压力。 表示本次抓取后下一次抓取前需要等待5秒。 注意 : google已经不支持这种方式了,在webmaster tools里提供了一个功能可以更直观的控制抓取速率。 这里插一句题外话,几年前曾经有一段时间robots.txt还支持复杂的参数:Visit-time,只有在visit-time指定的时间段里,爬虫才可以访问;Request-rate:用来限制URL的读取频率,用于控制不同的时间段采用不同的抓取速率。后来估计支持的人太少,就渐渐的废掉了,目前google和baidu都已经不支持这个规则了,其他小的引擎公司貌似 从来都 没有支持过。 网络爬虫: 自动或人工识别robots.txt,再进行内容爬取 约束性: Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险。 原则:类人行为可以不参考Robots协议。 Robots协议不是什么技术壁垒,而只是一种互相尊重的协议,好比私家花园的门口挂着“闲人免进”,尊重者绕道而行,不尊重者依然可以推门而入。目前,Robots协议在实际使用中,还存在一些问题。 缓存 robots.txt本身也是需要被抓取的,出于效率考虑,一般爬虫不会每次抓取网站网页前都抓一下robots.txt,加上robots.txt更新不频繁,内容需要解析。通常爬虫的做法是先抓取一次,解析后缓存下来,而且是相当长的时间。假设网站管理员更新了robots.txt,修改了某些规则,但是对爬虫来说并不会立刻生效,只有当爬虫下次抓取robots.txt之后才能看到最新的内容。尴尬的是,爬虫下次抓取robots.txt的时间并不是由网站管理员控制的。当然,有些搜索引擎提供了web工具可以让网站管理员通知搜索引擎那个url发生了变化,建议重新抓取。注意,此处是建议,即使你通知了搜索引擎,搜索引擎何时抓取仍然是不确定的,只是比完全不通知要好点。至于好多少,那就看搜索引擎的良心和技术能力了。 ignore 不知是无意还是有意,反正有些爬虫不太遵守或者完全忽略robots.txt,不排除开发人员能力的问题,比如说根本不知道robots.txt。另外,本身robots.txt不是一种强制措施,如果网站有数据需要保密,必需采取技术措施,比如说:用户验证,加密,ip拦截,访问频率控制等。恶意爬虫 在互联网世界中,每天都有不计其数的爬虫在日夜不息地爬取数据,其中恶意爬虫的数量甚至高于非恶意爬虫。遵守Robots协议的爬虫才是好爬虫,但是并不是每个爬虫都会主动遵守Robots协议。 恶意爬虫可以带来很多潜在威胁,比如电商网站的商品信息被爬取可能会被竞争对手利用,过多的爬虫还会占用带宽资源、甚至导致网站宕机。你学会了吗~~~? 点个赞吧!!!

浅析网站Robots协议语法及使用

每个人都有自己的隐私,每个网站也都有隐私;人可将隐私藏在心底,网站可以用robots进行屏蔽,让别人发现不了,让蜘蛛无法抓取,小蔡简单浅析下Robots协议语法及在SEO中的妙用,对新手更好理解及把握!什么是Robots协议?Robots协议(也称为爬虫协议、机器人协议等)是约束所有蜘蛛的一种协议。搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息。您可以在您的网站中创建一个纯文本文件robots.txt,网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。Robots.txt作用1、屏蔽网站内的死链接。2、屏蔽搜索引擎蜘蛛抓取站点内重复内容和页面。3、阻止搜索引擎索引网站隐私性的内容。(例如用户账户信息等)Robots.txt放在哪?robots.txt 文件应该放置在网站根目录下(/robots.txt)。举例来说,当spider访问一个网站(比如http://www.chdseo.com)时,首先会检查该网站中是否存在robots.txt这个文件,如果 Spider找到这个文件,它就会根据这个文件内容的规则,来确定它访问权限的范围。Robots写法Robots一般由三个段和两个符号组成,看个人需求写规则。最好是按照从上往下的顺序编写(由实践证明这顺序影响不大)。三个字段(记得“:”后面加空格)User-agent: 用户代理 Disallow: 不允许Allow: 允许 (/ 代表根目录,如 Allow: / 允许所有)两个符号星号 * 代表所有0-9 A-Z #通配符 $ 以某某个后缀具体用法:例1. 禁止所有搜索引擎访问网站的任何部分User-agent: *Disallow: /例2. 允许所有的robot访问(或者也可以建一个空文件 "/robots.txt")User-agent: *Disallow:或者User-agent: *Allow: /例3. 仅禁止Baiduspider访问您的网站User-agent: BaiduspiderDisallow: /禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。User-agent: *Disallow: /cgi-bin/*.htm$例4.禁止Baiduspider抓取网站上所有图片;仅允许抓取网页,禁止抓取任何图片。User-agent: BaiduspiderDisallow: .jpg$Disallow: .jpeg$Disallow: .gif$Disallow: .png$Disallow: .bmp$例5.仅允许Baiduspider访问您的网站User-agent: BaiduspiderDisallow:User-agent: *Disallow: /例6.允许访问特定目录中的部分url(根据自己需求定义)User-agent: *Allow: /cgi-bin/seeAllow: /tmp/hiAllow: /~joe/lookDisallow: /cgi-bin/例7.不允许asp后缀User-agent: *Disallow: /*.asp

robots协议的影响

Robots协议是网站出于安全和隐私考虑,防止搜索引擎抓取敏感信息而设置的。搜索引擎的原理是通过一种爬虫spider程序,自动搜集互联网上的网页并获取相关信息。而鉴于网络安全与隐私的考虑,每个网站都会设置自己的Robots协议,来明示搜索引擎,哪些内容是愿意和允许被搜索引擎收录的,哪些则不允许。搜索引擎则会按照Robots协议给予的权限进行抓取。Robots协议代表了一种契约精神,互联网企业只有遵守这一规则,才能保证网站及用户的隐私数据不被侵犯。违背Robots协议将带来巨大安全隐忧——此前,曾经发生过这样一个真实的案例:国内某公司员工郭某给别人发了封求职的电子邮件,该Email存储在某邮件服务公司的服务器上。因为该网站没有设置robots协议,导致该Email被搜索引擎抓取并被网民搜索到,为郭某的工作生活带来极大困扰。如今,在中国国内互联网行业,正规的大型企业也都将Robots协议当做一项行业标准,国内使用Robots协议最典型的案例,就是淘宝网拒绝百度搜索、京东拒绝一淘搜索。不过,绝大多数中小网站都需要依靠搜索引擎来增加流量,因此通常并不排斥搜索引擎,也很少使用Robots协议。北京市汉卓律师事务所首席律师赵虎表示,Robots协议是维护互联网世界隐私安全的重要规则。如果这种规则被破坏,对整个行业就是灭顶之灾。

亚马逊网站robots协议解读

在分析亚马逊的robots协议之前我们先应该明确的是网络爬虫会带来的风险和问题,这样才能更好的理解亚马逊为什么禁止网络爬虫访问这些内容,如果访问的话会造成什么危害。 最简单的robots.txt只有两个规则: User-agent:指定对哪些爬虫生效 Disallow:指定要屏蔽的网址 接下来以亚马逊的robots协议为例,分析其内容。 首先,先来分析亚马逊对于网络爬虫的限制。是否有有“特殊权限”的爬虫? 爬虫抓取时会声明自己的身份,这就是User-agent,就是http协议里的User-agent。robots.txt利用User-agent来区分各个引擎的爬虫。 *代表该内容下面Disallow的部分是禁止所有爬虫爬取的。因此robots协议中提及的“禁区”是针对于所有网络爬虫的,没有单独提及的爬虫。与之对应来看,我们会发现淘宝的robots协议中明确禁止百度的网络爬虫爬取。而百度的一些网站是允许百度爬虫任意爬取的。接下来分析亚马逊向网络爬虫屏蔽的内容有哪些。 Disallow 行列出的是要拦截的网页,以正斜线 (/) 开头,可以列出特定的网址或模式。要屏蔽整个网站,使用正斜线即可;要屏蔽某一目录以及其中的所有内容,在目录名后添加正斜线;要屏蔽某个具体的网页,就指出这个网页。 下面代表wishlist中允许访问的目录universal*、 vendor-button* 、get-button*仔细观察禁止访问,发现了一些“看得懂”的内容: 其中禁止了网络爬虫模仿用户的行为进行诸如给商品评分、发送电子邮件、分享到twitter的行为,这是十分合理的。试想若是不禁止网络爬虫模仿用户的行为,不仅可能会给网站的性能造成影响,可能会出现爬虫造成的恶意评分,以亚马逊名义发送内容无法保证的邮件的事件的发生。这样的行为会对亚马逊的交易环境和形象产生影响。 同时禁止爬虫访问历史、物流信息的请求可以避免用户的交易信息泄露造成麻烦。下面禁止访问的内容诸如登陆、退出账户,身份,订单地址、详细信息、历史、修改、记录,推荐浏览,浏览量,选择支付方式,选择物流,物流查询,购物车等。 其中的很多禁止爬取的都是已登录的账户才可以访问的内容,若是不禁止网络爬虫进行访问,则可能会出现网络爬虫模拟用户操作进行操作的现象发生,造成用户隐私泄露。 禁止爬虫爬取浏览量,浏览内容,推荐浏览等内容是亚马逊防止信息被爬取后被挪作他用牟利,比如“复制网站”的情况发生。

什么是robots协议?网站中的robots.txt写法和作用

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。文件写法User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录Disallow: /require/ 这里定义是禁止爬寻require目录下面的目录Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。Disallow: /*?* 禁止访问网站中所有包含问号 (?) 的网址Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录Allow: /tmp 这里定义是允许爬寻tmp的整个目录Allow: .htm$ 仅允许访问以".htm"为后缀的URL。Allow: .gif$ 允许抓取网页和gif格式图片Sitemap: 网站地图 告诉爬虫这个页面是网站地图文件用法例1. 禁止所有搜索引擎访问网站的任何部分User-agent: *Disallow: /实例分析:淘宝网的 Robots.txt文件User-agent: BaiduspiderDisallow: /User-agent: baiduspiderDisallow: /很显然淘宝不允许百度的机器人访问其网站下其所有的目录。例2. 允许所有的robot访问 (或者也可以建一个空文件 “/robots.txt” file)User-agent: *Allow: /例3. 禁止某个搜索引擎的访问User-agent: BadBotDisallow: /例4. 允许某个搜索引擎的访问User-agent: Baiduspiderallow:/例5.一个简单例子在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。需要注意的是对每一个目录必须分开声明,而不要写成 “Disallow: /cgi-bin/ /tmp/”。User-agent:后的*具有特殊的含义,代表“any robot”,所以在该文件中不能有“Disallow: /tmp/*” or “Disallow:*.gif”这样的记录出现。User-agent: *Disallow: /cgi-bin/Disallow: /tmp/Disallow: /~joe/Robot特殊参数:允许 Googlebot:如果您要拦截除Googlebot以外的所有漫游器不能访问您的网页,可以使用下列语法:User-agent:Disallow: /User-agent: GooglebotDisallow:Googlebot 跟随指向它自己的行,而不是指向所有漫游器的行。“Allow”扩展名:Googlebot 可识别称为“Allow”的 robots.txt 标准扩展名。其他搜索引擎的漫游器可能无法识别此扩展名,因此请使用您感兴趣的其他搜索引擎进行查找。“Allow”行的作用原理完全与“Disallow”行一样。只需列出您要允许的目录或页面即可。您也可以同时使用“Disallow”和“Allow”。例如,要拦截子目录中某个页面之外的其他所有页面,可以使用下列条目:User-agent: GooglebotAllow: /folder1/myfile.htmlDisallow: /folder1/这些条目将拦截 folder1 目录内除 myfile.html 之外的所有页面。如果您要拦截 Googlebot 并允许 Google 的另一个漫游器(如 Googlebot-Mobile),可使用”Allow”规则允许该漫游器的访问。例如:User-agent: GooglebotDisallow: /User-agent: Googlebot-MobileAllow:使用 * 号匹配字符序列:您可使用星号 (*) 来匹配字符序列。例如,要拦截对所有以 private 开头的子目录的访问,可使用下列条目: User-Agent: GooglebotDisallow: /private*/要拦截对所有包含问号 (?) 的网址的访问,可使用下列条目:User-agent: *Disallow: /*?*使用 $ 匹配网址的结束字符您可使用 $字符指定与网址的结束字符进行匹配。例如,要拦截以 .asp 结尾的网址,可使用下列条目: User-agent: GooglebotDisallow: /*.asp$您可将此模式匹配与 Allow 指令配合使用。例如,如果 ? 表示一个会话 ID,您可排除所有包含该 ID 的网址,确保 Googlebot 不会抓取重复的网页。但是,以 ? 结尾的网址可能是您要包含的网页版本。在此情况下,可对 robots.txt 文件进行如下设置:User-agent: *Allow: /*?$Disallow: /*?Disallow: / *?一行将拦截包含 ? 的网址(具体而言,它将拦截所有以您的域名开头、后接任意字符串,然后是问号 (?),而后又是任意字符串的网址)。Allow: /*?$ 一行将允许包含任何以 ? 结尾的网址(具体而言,它将允许包含所有以您的域名开头、后接任意字符串,然后是问号 (?),问号之后没有任何字符的网址)。尽管robots.txt已经存在很多年了,但是各大搜索引擎对它的解读都有细微差别。Google与百度都分别在自己的站长工具中提供了robots工具。如果您编写了robots.txt文件,建议您在这两个工具中都进行测试,因为这两者的解析实现确实有细微差别。