多线程的优点和缺点_【Python爬虫框架与模块】之各自的优缺点

小编是一名而立之年的大龄儿童,在IT界摸爬滚打已经有11年有余,最近趁清闲之余给大家分享一些我在工作中的一些心得和个人总结给大家借鉴参考。。。

c621ecaec66ef5bf643f252295005a48.png

今天来给大家讲解一下Python的一些模块的优缺点:

首先大家要知道Python是自带:urllib、urllib2这两个库的

第三方库是我在项目中用得最多的库:Requests的库

框架也是我在项目中用得最多的,也是面试问得最多的:Scrapy框架

urllib 和 urllib2 模块都做与请求 URL 相关的操作,但他们提供不同的功能。

urllib2:urllib2.urlopen 可以接受一个 Request 对象或者 url,(在接受 Request 对象时候,并以此可以来设置一个 URL 的 headers),urllib.urlopen 只接收一个 url。

urllib 有 urlencode,urllib2 没有,因此总是 urllib,urllib2 常会一起使用的原因。

scrapy 是封装起来的框架,它包含了下载器,解析器,日志及异常处理,基于多线程,twisted 的

方式处理,对于固定单个网站的爬取开发,有优势,但是对于多网站爬取,并发及分布式处理方面,不够灵活,不便调整与括展。

request 是一个 HTTP 库, 它只是用来,进行请求,对于 HTTP 请求,他是一个强大的库,下载,

解析全部自己处理,灵活性更高,高并发与分布式部署也非常灵活,对于功能可以更好实现。

bd07682087392b38e4173edf51014482.png

Scrapy 优点:

scrapy 是异步的

采取可读性更强的 xpath 代替正则;

强大的统计和 log 系统;

同时在不同的 url 上爬行;

支持 shell 方式,方便独立调试;

写 middleware,方便写一些统一的过滤器;

通过管道的方式存入数据库;

Scrapy 缺点:

基于 python 的爬虫框架,扩展性比较差;

基于 twisted 框架,运行中的 exception 是不会干掉 reactor,并且异步框架出错后是不会停掉

其他任务的,数据出错后难以察觉。

小编第一次写微信公众号,有许多写的不到之处还望大家多多包涵哦。

对Python感兴趣的小伙伴可以来我学习裙,一起交流探讨这方面的知识,也希望通过我的经验知识能够帮助大家在编程的路上少走弯路!大家可以点击下方的“阅读原文”来我学习裙学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值