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中爬虫框架或模块的区别!相关推荐

  1. Python中爬虫框架或模块的区别

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

  2. python中sys用法_python中os和sys模块的区别与常用方法总结

    python 的 python中os和sys模块的区别与常用方法总结 前言 本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看 ...

  3. python中的sys模块和os_python中os和sys模块的区别与常用方法总结

    前言 本文主要介绍了关于python中os和sys模块区别与常用方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 官方解释: os: This module provi ...

  4. python中的框架、库、包、模块都是什么意思_【扫盲】模块 库 框架 包

    主要参考: [1]. python模块.包.库.框架_小澄の博客-CSDN博客_模块 包 https://blog.csdn.net/weixin_45765473/article/details/1 ...

  5. Python Scrapy爬虫框架实战应用

    通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...

  6. Python中的类、模块和包究竟是什么?

    Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...

  7. 对于python来说、一个模块就是一个文件-PYTHON中的包和模块

    为了更加友好的对python代码进行组织管理,python中出现了包和模块的概念 类似生活中整理我们的物品一样,将代码按照不同的功能进行整理整合,可以很大程度的提升代码可读性和代码质量,方便在项目中进 ...

  8. Python 中三大框架各自的应用场景

    Python 中三大框架各自的应用场景 django: 主要是用来搞快速开发的,他的亮点就是快速开发,节约成本,正常的并发量不过 10000, 如果要实现高并发的话,就要对 django 进行二次开发 ...

  9. 开源 Python网络爬虫框架 Scrapy

    开源 Python 网络爬虫框架 Scrapy:http://blog.csdn.net/zbyufei/article/details/7554322 介绍 所谓网络爬虫,就是一个在网上到处或定向抓 ...

最新文章

  1. java htmldecoder_HTMLDecoder——开头的HTML编码的解码工具类(java)
  2. 排队问题解题思路_高考文科数学是最“拉分”的!6种题型分析与10大解题方法...
  3. ASP.NET(C#) 四舍五入、进一法、舍位(取整,舍去小数,向负无穷舍入)函数
  4. python软件设置代码字体的大小_PyCharm中代码字体大小调整方法
  5. C/C++——new一个二维数组
  6. dvd在线租赁问题 matlab,DVD在线租赁问题.doc
  7. java 皮尔逊相关系数_皮尔逊相关系数
  8. HTML的基本知识(七)——表单的基本知识及案例
  9. mysql 协议解析源码 c_MySQL协议分析2
  10. webrtc 研究-带宽控制
  11. bugku---啊哒
  12. 某电商网站Java面试题-2(高级开发,架构级别)
  13. 薪资待遇#23届#海尔#嵌入式软件
  14. ContextCapture Master 倾斜摄影测量实景三维建模技术
  15. 卡罗拉更换变速油教程
  16. 10053 事件详解
  17. win7 oracle32位客户端安装找不到orandce11.dll.dbl
  18. linux otg u盘,如何使用OTG手机功能U盘?
  19. 解决签名无法校验通过的问题
  20. 河南工程学院第五届ACM大学生程序设计竞赛(部分题解)

热门文章

  1. python读取excel送到网页_python怎么读取excel!怎么用python将excel数据写入网页中
  2. Mysql视图与数据备份
  3. MyBatis开发Dao的方法
  4. Spring来装配组件
  5. r语言上机文本分析与词云绘制_倚天屠龙记的文本分析
  6. Spring-bean的生命周期
  7. 《软件工程》实验报告——软件测试
  8. JAVA——基于HttpComponents(HttpClient)的简单网络爬虫DEMO
  9. ZOJ 1292 Integer Inquiry
  10. XCTF WEB simple_php