Python中爬虫框架或模块的区别!
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是封装起来的框架,它包含了下载器、解析器、日志及异常处理,是基于多线程的,采用twisted的方式处理。对于固定单个网站的爬取开发,Scrapy具有优势;对于多网站爬取,并发及分布式处理方面,Scrapy不够灵活,不便调整与扩展。
Scrapy具有以下优点:
·Scrapy是异步的;
·采取可读性更强的XPath代替正则表达式;
·强大的统计和log系统;
·可同时在不同的URL上爬行;
·支持shell方式,方便独立调试;
·方便写一些统一的过滤器;
·通过管道的方式存入数据库。
Scrapy是基于python实现的爬虫框架,扩展性比较差。
Pyspider是一个重量级的爬虫框架。我们知道Scrapy没有数据库集成、分布式、断点续爬的支持、UI控制界面等等,若Scrapy想要实现这些功能,需要自行开发。Pyspider已经集成了前面这些功能,也正因如此,Pyspider的扩展性太差,学习难度较大。
本文来自千锋教育,转载请注明出处。
Python中爬虫框架或模块的区别!相关推荐
- Python中爬虫框架或模块的区别
Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...
- python中sys用法_python中os和sys模块的区别与常用方法总结
python 的 python中os和sys模块的区别与常用方法总结 前言 本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看 ...
- python中的sys模块和os_python中os和sys模块的区别与常用方法总结
前言 本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 官方解释: os: This module provi ...
- python中的框架、库、包、模块都是什么意思_【扫盲】模块 库 框架 包
主要参考: [1]. python模块.包.库.框架_小澄の博客-CSDN博客_模块 包 https://blog.csdn.net/weixin_45765473/article/details/1 ...
- Python Scrapy爬虫框架实战应用
通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...
- Python中的类、模块和包究竟是什么?
Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...
- 对于python来说、一个模块就是一个文件-PYTHON中的包和模块
为了更加友好的对python代码进行组织管理,python中出现了包和模块的概念 类似生活中整理我们的物品一样,将代码按照不同的功能进行整理整合,可以很大程度的提升代码可读性和代码质量,方便在项目中进 ...
- Python 中三大框架各自的应用场景
Python 中三大框架各自的应用场景 django: 主要是用来搞快速开发的,他的亮点就是快速开发,节约成本,正常的并发量不过 10000, 如果要实现高并发的话,就要对 django 进行二次开发 ...
- 开源 Python网络爬虫框架 Scrapy
开源 Python 网络爬虫框架 Scrapy:http://blog.csdn.net/zbyufei/article/details/7554322 介绍 所谓网络爬虫,就是一个在网上到处或定向抓 ...
最新文章
- java htmldecoder_HTMLDecoder——开头的HTML编码的解码工具类(java)
- 排队问题解题思路_高考文科数学是最“拉分”的!6种题型分析与10大解题方法...
- ASP.NET(C#) 四舍五入、进一法、舍位(取整,舍去小数,向负无穷舍入)函数
- python软件设置代码字体的大小_PyCharm中代码字体大小调整方法
- C/C++——new一个二维数组
- dvd在线租赁问题 matlab,DVD在线租赁问题.doc
- java 皮尔逊相关系数_皮尔逊相关系数
- HTML的基本知识(七)——表单的基本知识及案例
- mysql 协议解析源码 c_MySQL协议分析2
- webrtc 研究-带宽控制
- bugku---啊哒
- 某电商网站Java面试题-2(高级开发,架构级别)
- 薪资待遇#23届#海尔#嵌入式软件
- ContextCapture Master 倾斜摄影测量实景三维建模技术
- 卡罗拉更换变速油教程
- 10053 事件详解
- win7 oracle32位客户端安装找不到orandce11.dll.dbl
- linux otg u盘,如何使用OTG手机功能U盘?
- 解决签名无法校验通过的问题
- 河南工程学院第五届ACM大学生程序设计竞赛(部分题解)