Python中爬虫框架或模块的区别是什么?我们在学习Python的过程中需要不断总结知识点,这样才能进步更快。
(1)爬虫框架或模块
Python自带爬虫模块:urllib、urllib2;
第三方爬虫模块:requests、aiohttp;
爬虫框架:Scrapy、pyspider。
(2)爬虫框架或模块的优缺点
urllib 和 urllib2 模块都用于请求 URL 相关的操作,但它们提供不同的功能。在urllib2模块中,urllib2.urlopen可以接受一个Request对象或者url,(在接受Request对象的时候,用它来设置一个URL的headers),并且只接收一个url; urllib 有 urlencode,而 urllib2 中没有。因此,开发者在实际开发中经常将 urllib 与 urllib2 一起使用。
requests 是一个 HTTP 库,仅用于发送请求。对于 HTTP 请求,request 是一个强大的库,可以自己处理下载和解析,具有更高的灵活性。高并发和分布式部署也很灵活,功能可以更好的实现。
aiohttp是一个基于python3的asyncio携程机制的http库。与requests相比,aiohttp本身具有异步功能。但仅限python3环境。
Scrapy 是一个封装框架,包括下载器、解析器、日志和异常处理。它基于多线程,并以扭曲的方式处理。对于固定单一网站的爬取开发,Scrapy有优势;对于多站点爬取、并发和分布式处理,Scrapy不够灵活,无法调整和扩展。
Scrapy 具有以下优点:
·Scrapy 是异步的;
·使用更易读的XPath代替正则表达式;
·强大的统计和日志系统;
·可以同时爬取不同的网址;
·支持shell模式,方便独立调试;
·写一些统一的过滤器很方便;
· 通过管道存储在数据库中。
Scrapy 是一个基于 python 的爬虫框架,扩展性较差。
Pyspider 是一个重量级的蜘蛛框架。我们知道Scrapy没有数据库集成、分发、支持断点连续爬升、UI控制界面等,如果Scrapy要实现这些功能,还需要自己开发。 Pyspider集成了以上功能,正因为如此,Pyspider的可扩展性太差,学习难度大。更多关于“Python培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。