《Python网络爬虫》2.2 Robots协议

作者: 一页编程 | 来源:发表于2017-04-06 08:38 被阅读79次

    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 代表的是不允许这个爬虫访问的资源的目录。

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

    相关文章

      网友评论

        本文标题:《Python网络爬虫》2.2 Robots协议

        本文链接:https://www.haomeiwen.com/subject/azefattx.html