《Python网络爬虫》2.2 Robots协议

By 一页编程

什么是Robots协议

Robots是机器人的意思,那Robots协议是什么呢?

Robots协议的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),读起来很绕口,所以我们简称Robots协议。Robots协议的一个很重要作用就是网站告知爬虫哪些页面可以抓取,哪些不行。

我们之前讲过说一个网站想限制爬虫,有两个办法,一个办法是审查来源,一个办法是通过Robots协议来做到告知。Robots协议就是这样的一个功能,它的具体使用是在网站的根目录下放置一个文件——robots.txt文件,在这个文件中写明了在一个网站里哪些目录是允许爬虫去爬取的,哪些目录是不允许的。

通过这样的形式,你如果写了一个爬虫,你就要去尊重网站维护人员对网站资源的一个管理。

京东的Robots协议

我们看一下京东的Robots协议,浏览器打开网址:https://www.jd.com/robots.txt,就看到Robots协议的文本。

User-agent: * 
Disallow: /?* 
Disallow: /pop/*.html 
Disallow: /pinpai/*.html?* 
User-agent: EtaoSpider 
Disallow: / 
User-agent: HuihuiSpider 
Disallow: / 
User-agent: GwdangSpider 
Disallow: / 
User-agent: WochachaSpider 
Disallow: /
  • User-agent: * :指的是对于任何的网络爬虫来源(定义为user-agent),也就是说无论你是什么样的网络爬虫都应该遵守如下的协议。
  • Disallow: /?* :不允许所有爬虫访问以问号开头的路径。
  • Disallow: /pop/*.html :不允许所有爬虫访问pop目录下的所有HTML页面。
  • Disallow: /pinpai/*.html?* :符合这个通配符的内容也是不允许任何网络爬虫访问的

此外,京东的robots协议又提供了User-agent: EtaoSpider 这样的一个内容,其实不只是EtaoSpider,后面还有四个网络爬虫,后面都跟了一句Disallow: / 指的是这四个网络爬虫,是不允许爬去京东的任何资源,

Robots基本语法

Robots协议他通过了一个基本语法来告知所有的爬虫,它内部资源能够被访问的权限,这个语法就是User-agentDisallow

  • User-agent 表明的是哪些爬虫,如果我们想代表所有爬虫就用User-agent: *
  • Disallow 代表的是不允许这个爬虫访问的资源的目录。

有了这样的一个基本协议,就可以对整个网站的内容做一个相关的规范,使得所有的爬虫知道他可以访问哪里,不可以访问哪里。

    原文作者:一页编程
    原文地址: https://www.jianshu.com/p/2dde5a2b5a0e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞