Robots 协议也称作爬虫协议、机器人协议,它的全名叫作网络爬虫排除标准( Robots Exclusion Protocol ),用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可以抓取 它通常是一个叫作 robots.txt 的文本文件,一般放在网站的根目录下

当搜索爬虫访问一个站点时,它首先会检查这个站点根目录下是否存在 robots.txt 文件,如果存在, 搜索爬虫会根据其中定义的爬取范围来爬取, 如果没有找到这个文件,搜索爬虫便会访问所有可直接访问的页面:

看个robots.txt的样例:

User-agent: *
Disallow: /
Allow: /public/

这个定义就实现了对所有搜索爬虫只允许爬取putblic目录的功能,将上述内容保存成robots.txt文件,放在网站的根目录下,和网站的入口文件(比如:index.php,index.html,index.jsp)

Allow一般和Disallow一起使用,一般不会单独使用,用来排除某些操作限制。

爬虫名称

常见搜索爬虫的名称及其对应的网站

robotparse:解析robots文

robotparse模块可以实现帮助我们解析robots.txt文件,来判断我们是否有权限来爬取这个网页

urllib.robotparser.RobotFileParser(url="")

set_url():用来设置robots.txt文件的链接。如果在创建RobotFileParser对象时传入链接,那么就不需要再使用这个方法设置了

read() :读取 robots.txt 文件并进行分析,注意,这个方法执行一个读取和分析操作,如果不调用这个方法,接下来的判断都会为 False ,所以一定记得调用这个方法 这个方法不会返 回任何内容,但是执行了读取操作

parse():用来解析 robots.txt 文件,传入的参数是robots.txt 某些行的内容 ,它会按照 robots.txt 的语法规则来分析这些内容

can_fetch()  :该方法传人两个参数 第一个是 User-agent ,第二个是要抓取的 URL 返回的内容是该搜索引擎是否可以抓取这个 URL ,返回结果是 True或 False

mitme() :返回的是上次抓取和分析 robots.txt 的时间,这对于长时间分析和抓取的搜索爬虫 很有必要的,你可能需要定期检查来抓取最新的 robots.txt

modified()::它同样对长时间分析和抓取的搜索爬虫很有帮助,将当前时间设置为上次抓取和分析 robots.txt 的时间

from urllib.robotparser import RobotFileParserrq = RobotFileParser()
rq.set_url("https://blog.csdn.net/Smart_look?spm=1000.2115.3001.5343")
rq.read()
print(rq.can_fetch("*","https://blog.csdn.net/Smart_look?spm=1000.2115.3001.5343"))结果:
True

也可以使用parse() 方法来执行读取

from urllib.robotparser import RobotFileParser
from urllib.request import urlopenrq = RobotFileParser()
rq.parse(urlopen("https://blog.csdn.net/Smart_look?spm=1000.2115.3001.5343").read().decode("utf-8").split("\n"))
print(rq.can_fetch("*","https://blog.csdn.net/Smart_look?spm=1000.2115.3001.5343"))结果:
True

爬虫:Robots协议相关推荐

  1. 爬虫Robots协议

    Robots协议是互联网爬虫的一项公认的道德规范,它的全称是"网络爬虫排除标准"(Robots exclusion protocol),这个协议用来告诉爬虫,哪些页面是可以抓取的, ...

  2. 丑憨批的爬虫笔记2(爬虫引发的问题+robots协议)

    去搜 user-agent!!!! referer!!!!! 网页中怎么查看请求头header信息 点一下Name里的东西就会出来 规模大小分类 robots协议 User-agent: * /// ...

  3. python遵循什么协议_《Python网络爬虫》2.3 Robots协议的遵守方式

    在实际操作中我们这样的爬虫该如何遵守robots协议呢? Robots协议的使用 对于任何网络爬虫来讲,它应该能够自动或人工的识别robots.txt文件,根据文件的内容再进行爬取. 即使不写这样的代 ...

  4. 网络爬虫排除协议robots.txt介绍及写法详解.

    以上内容转载自:http://www.xgezhang.com/serach_engine_robots.html Robots协议的全称是"网络爬虫排除标准"(Robots Ex ...

  5. 【K哥爬虫普法】百度、360八年乱战,robots 协议之战终落幕

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知 ...

  6. Python爬虫——爬虫是什么都可以爬的吗?Robots协议!

    Python爬虫--爬虫是什么都可以爬的吗? 初识"爬虫"这个词时,想必大家都会和我一样,认为"爬虫"就是爬取网站上的各种内容,可以抓取网站的信息为我们所用. ...

  7. 爬虫君子协议-robots.txt协议

    文章目录 一.定义 二.用法 一.定义 robots协议是一种约定俗称的爬虫协议,由网站主人规定了该网站的哪些内容可以爬取,哪些内容不可以爬取,擅自爬取可能承担相关法律责任.之所以称之为君子协议,是因 ...

  8. 【网络爬虫与信息提取】Robots协议

    一.网络爬虫引发的问题 网络爬虫根据尺寸可以分为三类:小规模.中规模和大规模. 其中小规模的爬虫一般是用于爬取网页,数据量不大而且对速度不敏感,一般使用requests库就足够了,占据了所有网络爬虫的 ...

  9. 网络爬虫的Robots协议

    目前对网络爬虫的限制主要有两种方式: 1.来源审查:判断User-Agent(在请求头中的一个键值对)进行限制,通过该键值对可以判断发起网络请求的浏览器类型,网站维护人员可以根据这个进行请求限制. 2 ...

最新文章

  1. HTTP请求报文和HTTP响应报文(转)
  2. hive根据职位给员工涨工资_华为28岁员工工资表曝光:厉害的HR,都有这些特质!...
  3. Java NIO系列教程(三) Buffer
  4. Dockerfile创建自定义Docker镜像以及CMD与ENTRYPOINT指令的比较
  5. RAC OEM 打开无法显示CPU情况 的解决过程
  6. ElasticSearch Java SpringBoot根据时间范围分组求和
  7. Python 杠上 Java、C/C++,赢面有几成?
  8. Linux 命令(119)—— diff 命令
  9. qtextedit非编辑时去边框_10分钟看懂Photoshop图像的基本编辑方法-数字化图像、图像基础理论知识(置入文件)...
  10. Android集成三方浏览器之X5内核,从入门到精通
  11. JDK8的下载和安装,以及配置环境变量
  12. Hyperscan 5.1.0 安装
  13. matlab 偏最小二乘回归,偏最小二乘法回归和判别分析的Matlab开源免费库
  14. JS获取下个月的第一天和最后一天
  15. 求次方的c语言程序,C语言编程求13的13次方的最后三位数
  16. 大部分人都容易焦虑,那么应该如何对待焦虑呢?
  17. 大学物理实验长度的测量实验报告_大学物理实验长度测量
  18. 分享:从华为转正到离职
  19. 利用南十字星座测量经纬度的方法
  20. 模拟电子技术基础 第一章 绪论

热门文章

  1. 移动开发视频资源百度网盘地址分享
  2. MCU Alarm报警监测
  3. python好玩的黑科技_用Python玩微信跳一跳黑科技详细使用教程
  4. file.getOriginalFilename()
  5. 【数据结构】用Java实现动态数组
  6. 某人写的openCV学习笔记_拔剑-浆糊的传说_新浪博客
  7. PHP数组内容制作分页功能
  8. module 与 component 的区别
  9. GDT、GDTR、LDT、LDTR的理解 [zz]
  10. vscode中terminal不支持workon激活虚拟环境?试试修改默认shell