使用 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