python爬虫学习12

python爬虫学习12

  • robotparser

    ​ 上一篇我们一同了解了Robots协议,了解协议之后我们就可以使用robotparser模块来解析robot.txt文件了。

    • RobotFileParser

      • 声明:

        在这里插入图片描述

        只需要在使用该类时传入robot.txt的url连接即可

      • set_url ()方法:用来设置robot.txt文件的连接

        在这里插入图片描述

      • read()方法:读取robot.txt文件进行分析

        在这里插入图片描述

      • parse()方法:用于解析robot.txt文件

        在这里插入图片描述

      • can_fetch()方法:有两个参数,第一个是user-Agent,第二个是要抓取的URL,返回的结果是 True 或 False 。表示user-Agent指示的搜索引擎是否可以抓取这个URL。

        在这里插入图片描述

      • mtime()方法:返回上次抓取和分析robots.txt的时间,这对于长时间分析和抓取robots.txt文件的搜索爬虫很有必要,我们要定期检查来抓取最新的robots.txt

      • modified()方法:他同样对长时间抓取和分析的搜索爬虫很有必要,可以将当前时间设置为上次抓取和分析robots.txt文件的时间。

      • 实例

        from urllib import robotparser
        
        rp = robotparser.RobotFileParser()
        rp.set_url('https://www.baidu.com/robots.txt')
        rp.read()
        
        # 用can_fetch 判断网页是否可以被抓取
        print(rp.can_fetch('Baiduspider','https://www.baidu.com'))
        print(rp.can_fetch('Baiduspider','https://www.baidu.com/homepage/'))
        print(rp.can_fetch('Googlebot','https://www.baidu.com/homepage/'))
        
        # 从结果我们可以看到 用Baiduspider可以抓取homepage页面,而Googlebot就不行。
        

        运行结果 :

        在这里插入图片描述

        打开百度的robots.txt

        在这里插入图片描述

        可以看到其对Baiduspider没有限制

  • 本章结语

    urllib库的使用到此结束,对于urllib库,我们学习了其中的request模块、error模块、parse模块以及robotparser模块的基本用法。下一篇我们将学习更加强大的requests库。

未完待续…

猜你喜欢

转载自blog.csdn.net/szshiquan/article/details/123389610
今日推荐