使用 urllib 分析 Robots 协议

(1) Robots Exclusion Protocol,网络爬虫排除标准,也称爬虫协议、机器人协议,用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可以抓取
(2) Robots 协议以 robots.txt 文件的形式表示,一般放在网站的根目录下,爬虫和搜索引擎要根据文件的内容范围来爬取,如果文件不存在,爬虫便会访问所有可直接访间的页面
(3) 百度的爬虫协议:http://www.baidu.com/robots.txt    博客园的爬虫协议:https://www.cnblogs.com/robots.txt    简书的爬虫协议:https://www.jianshu.com/robots.txt

[root@localhost ~]# cat robots.txt    //如下,表示只允许所有的搜索爬虫爬取public目录,其他目录禁止爬取
User-Agent:*                         //常见的搜索爬虫有:BaiduSpide 、Googlebot 、360Spider 、YodaoBot 等
Disallow:/                           
Allow:/public/

urllib 使用 robotparser 模块来解析 robots.txt,它可以根据某网站的 robots.txt 文件来判断是否有权限来爬取这个网页:

In [1]: from urllib.robotparser import RobotFileParser

In [2]: robot = RobotFileParser()                                //创建一个解析器,用来存储Robots协议内容

In [3]: robot.set_url("https://www.cnblogs.com/robots.txt")      //set_url()用于设置robots.txt文件的路径

In [4]: robot.read()                                             //read()用于读取并分析robots.txt文件的内容,并把结果存储到解析器中

In [5]: robot.can_fetch("*", "https://www.cnblogs.com/pzk7788")  //can_fetch()用于判断指定的搜索引擎是否能抓取这个URL
Out[5]: True

 

 

 

 

 

 

 

    

posted @ 2019-03-14 16:25  孔雀东南飞  阅读(281)  评论(0编辑  收藏  举报