Robots协议
Robots协议
什么是robots?
Robots文件:网站和搜索引擎之间的一个协议。
用来防止搜索引擎抓取那些我们不想被搜索引擎看到的隐私内容。
Robots文件告诉蜘蛛什么是可以被查看的。
Robots是蜘蛛爬行网站第一个要访问的文件。
一:搜索引擎蜘蛛爬虫的原理
网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其他链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。
当我们不想让搜索引擎抓取,我们该怎么做呢?于是就有了一个Robots协议,早期是为了防止搜索引擎抓取一些隐私的页面。
比如你做淘宝客类型的网站,这种肯定不能让蜘蛛抓取到。百度对淘宝客类型的网站打击是很严厉的,只要是淘宝类型的链接,百度一旦发现,直接把你的网站给K掉。
做淘宝客类型的网站,我们一般是把产品放到内页,然后禁止蜘蛛爬取这个页面。
例子:
我曾经在2010年的时候做过一个淘宝客的网站(祛痘产品的),做了5个月,期间网站收录了又被K掉,然后我又把它做上去,然后又被K掉,反复3次,实在受不了了。本来想把这个站丢掉,但是付出了精力时间,放弃又太可惜了。我就上网搜索资料,然后联系同行的朋友,后边知道淘宝客类型的网站,百度打击很严重。他们做淘宝客网站,链接都是做了处理的,而且通过Robots来控制蜘蛛禁止抓取。后边按照这个思路,我把我的网站的链接进行了处理,然后进行了Robots抓取的处理,后边这个站盈利还是不错的。
二:什么是Robots协议?
Robots协议,他不是一个命令,而是一个指令。事实上,当你对网站进行robots屏蔽后,他不会马上就采取行动,他是一个单方面协议,蜘蛛可以听从,也可以不听从!
大家需要注意,设置robots后,并不会像我们想象的那样马上生效,短则几天生效,长则4周以上才能生效。
Robots.txt的写法
一:Robots.txt语法
要想正确的使用robots,就要学会怎么写robots,写法并不难,下面就跟大家说说robots的写法和一些注意事项。
常用符号:
User-agent:定义搜索引擎的类型
Disallow:定义禁止搜索引擎收录的地址
Allow:定义允许搜索引擎收录的地址
*:匹配0或多个任意字符
$:匹配行结束符
二:Robots 语法解析
1.User-agent:是定义搜索引擎的。如果定义所有搜索引擎,就用User-agent:*,如果想定义百度蜘蛛的话,User-agent:Baiduspider。
以淘宝网为例子:
淘宝网屏蔽了百度蜘蛛对淘宝网站内页的提取。
由于全球互联网上蜘蛛有近200个品种,我们只要记住常用的几个就行:
百度蜘蛛:Baiduspider
谷歌机器人:Googlebot
雅虎蜘蛛:Mozilla
微软bing蜘蛛:msnbot
soso的蜘蛛:sosospider
360蜘蛛:360Spider
2.Disallow:是禁止搜索引擎抓取的意思。
注意:/表示根目录,代表网站所有的目录。斜杠的方向不要弄错了哦。
例如,想针对所有搜索引擎屏蔽这么一个路径www.xxxx.com/help/index.html,那写法可以是下面这样:
Uuser-agent:*
Disallow: /help/index.html
3.Allow:是允许的意思,但需要注意,他的使用一般都是结合Disallow一起用的。
加上Disallow后,意思是:除了可以爬取这个外,其余的都禁止爬取。
例如:www.xxxx.com/help/目录下有很多文件不想让蜘蛛抓取,只要蜘蛛抓取其中的index.html页面,那么,写法如下:
User-agent:*
Disallow:/help/
Allow:/help/index.html
或者
User-agent:*
Allow:/help/index.html
Disallow:/help/
4,*:通配符,匹配零或者多个任意字符。通配符的出现,让robots.txt代码更加精简,用更少的代码能够达到同样的效果。假如出现下面多个URL地址不想给蜘蛛抓取,他们又有相同的规律,那么我们就可以用*号来进行统一屏蔽。
www.xxxx.com/books?34f34q=fskdjf
www.xxxx.com/books?34f43q=fskdf
www.xxxx.com/books?3443fq=fkddsssaf2
www.xxxx.com/books?4333q=fskysd
Robots的写法如下:
User-agent:*
Disallow:/books?*q=*
这样写,是不是很简单啊!
5.$:是结束符。(所有以它结尾的都能够进行匹配。)
很多网站对于一些统一不想要蜘蛛抓取的内容就可以用到$。例如禁止Baiduspider抓取网站上所有的jpg图片。
User=agent:*
Disallow:/*jpg$
三robots使用重点:
1.robots文件必须是TXT格式,而且必须是小写,文件名字也不能变。
2.robots文件必须放到站点的根目录。(例如:www.xxxx.com/robots.txt)
3.robots文件中的语法,首字母必须大写
4.每行只能写一个语法,不能挨着写,写下一个语法的时候,必须换行。
例如:Disallow Allow
5冒号后边要有空格 例如: Disallow: /
6.User-agent 放在第一,起到定义搜索引擎的作用,意思就是之后的语法是针对User-agent定义对应的搜索引擎的。
7./ 单一的斜杠代表根目录,如果是www.xxxx.com/help/a/
这种的意思就代表在www.xxxx.com这个网址下边的help目录下边的a目录下边的所有东西。
为什么要写这个robots?
蜘蛛访问站的时候首先看有没有这个文件,没有的话,就访问你的全部文件。有的话,先访问robots
1.蜘蛛访问一个网站首先是看robots.txt文件
第二,robots.txt能够屏蔽站内死链接
在robots中可以写入网站地图,让蜘蛛更快的爬取你的网站。
以前在做SEO的时候,都是把网站地图放到一个一个搜索引擎上去,让搜索引擎更好的收录,现在有了更好的方法,把网站地图写进robots能更好的让蜘蛛来爬取
举例:
User-agent: *
意思是定义搜索引擎的名字。
Disallow: /plus/ad_js.php
Disallow的意思是禁止。
此句代码是禁止任何蜘蛛来爬服务器下边plus文件下的js.php这个文件
Allow: /
Allow的意思是允许。
Disallow和Allow后边必须要有/。而且单词必须首字母大写。
切记:不要把后台路径写入robots。容易暴露你的后台路径。
Disallow: / 拦截所有的机器人访问网站
一般黄色网站都是这样写,屏蔽所有蜘蛛爬取。
http://www.360buy.com/robots.txt 这个是京东的网站。
Disallow: /?*
这个代码意思是屏蔽带?的所有URL。
京东屏蔽了所有蜘蛛的爬取,他做自己的品牌,不允许别人来抓取。信息对自己很重要的,品牌很大的,不需要蜘蛛来爬
蜘蛛爬取网站时间
上午8-11点,下午 4-6点,晚上 10-12点
Robots协议的更多相关文章
- 笔记整理--玩转robots协议
玩转robots协议 -- 其他 -- IT技术博客大学习 -- 共学习 共进步! - Google Chrome (2013/7/14 20:24:07) 玩转robots协议 2013年2月8日北 ...
- 芝麻HTTP:分析Robots协议
利用urllib的robotparser模块,我们可以实现网站Robots协议的分析.本节中,我们来简单了解一下该模块的用法. 1. Robots协议 Robots协议也称作爬虫协议.机器人协议,它的 ...
- [python爬虫]Requests-BeautifulSoup-Re库方案--robots协议与Requests库实战
[根据北京理工大学嵩天老师“Python网络爬虫与信息提取”慕课课程编写 慕课链接:https://www.icourse163.org/learn/BIT-1001870001?tid=100223 ...
- 使用 urllib 分析 Robots 协议
(1) Robots Exclusion Protocol,网络爬虫排除标准,也称爬虫协议.机器人协议,用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可以抓取(2) Robots 协议以 robots ...
- Python 爬虫-Robots协议
2017-07-25 21:08:16 一.网络爬虫的规模 二.网络爬虫的限制 • 来源审查:判断User‐Agent进行限制 检查来访HTTP协议头的User‐Agent域,只响应浏览器或友好爬虫的 ...
- Robots协议(爬虫协议、机器人协议)
Robots协议(也称为爬虫协议.机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓 ...
- 爬虫基础 - Robots协议
Robots协议 指定一个robots.txt文件,告诉爬虫引擎怎么爬取 https://www.taobao.com/robots.txt User-agent: Baiduspider Allow ...
- Robots协议(摘)
robots协议 Robots协议(也称为爬虫协议.机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓 ...
- 2.爬虫 urlib库讲解 异常处理、URL解析、分析Robots协议
1.异常处理 URLError类来自urllib库的error模块,它继承自OSError类,是error异常模块的基类,由request模块产生的异常都可以通过这个类来处理. from urllib ...
随机推荐
- c#中Partial关键字的作用
1. 什么是局部类型? C# 2.0 引入了局部类型的概念.局部类型允许我们将一个类.结构或接口分成几个部分,分别实现在几个不同的.cs文件中. 局部类型适用于以下情况: (1) 类型特别大,不宜放在 ...
- Bezier(贝塞尔)曲线简介
在计算机图形学中,Bezier曲线被广泛用于对平滑的曲线进行建模,对其有适当的了解是必要的.一条Bezier曲线由一系列控制点定义,称为曲线的阶数,由此可知,使用两个控制点()可以定义一条一阶Bezi ...
- Ceph QoS 初探(下)
作者:吴香伟 发表于 2017/01/24 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 存储QoS是个可以做很大也可以做很小的特性.SolidFire认为将Q ...
- ODBC
ODBC是80年代末90年代初出现的技术,它为编写关系数据库的客户软件提供了统一的接口.ODBC只提供单一的API,可用于处理不同数据库的客户应用程序.使用ODBC API的应用程序可以与任何具有OD ...
- MVC - 云服务器部署
本章将和大家分享的是如果在云服务器上部署mvc,云服务器部署其实也不高大上,就和咋们在自己电脑上用iis发布部署站点一样,只是需要使用云解析把自己购买的域名解析到对应的自己的云服务器上,这些都是用的云 ...
- 依赖lean cloud的注册与登录
前言 实现登录注册的基本功能,没有添加手机验证和邮箱验证的功能,有相应的方法,如果需要,可以自己加上其相应的方法 github的网址: 效果图: 正文 1.导入leancloud相应的第三方,这个等我 ...
- ASP.NET MVC用存储过程批量添加修改数据
用Entity Framework 进行数据库交互,在代码里直接用lamda表达式和linq对数据库操作,中间为程序员省去了数据库访问的代码时间,程序员直接可以专注业务逻辑层的编写.但是对于比较复杂的 ...
- 微信小程序 网络请求之设置合法域名
设置域名 登录微信公众号后台小程序中 设置→开发设置→服务器设置 必须设置域名,微信小程序才能进行网络通讯,不然会报错 如果设置好了合法域名,开发工具还提示不在合法域名列表中,因为在微信会有一段时间的 ...
- HL-340编译驱动
make -C /lib/modules/3.4.39/build SUBDIRS=/home/linaro/Desktop/ch341_drv modulesmake: *** /lib/modul ...
- Memcached服务安装
安装Memcached服务 memcache分为服务端和客户端程序 服务端程序用来支持存储k-v值,程序名称memcached 客户端与服务端通信,进行存取值(常用的如php的memcache扩展,m ...