[不懂就问] Python爬虫框架Scrapy到底好在哪里?
- 刚开始写爬虫的时候用过一两个项目,那时候基本啥都不懂,就用现成的。
- 现在基本是直接 requests 加清洗入库。
- 感觉清洗入库的操作都差不多,scrapy 主要是完成啥工作了?
- 多线,报错处理,ip 池,这些也都自己写了。
- 想请教下 Scrapy 到底有啥特别之处吗?想看看有没有能吸收改善的,或者要不要再转 Scrapy。
[不懂就问] Python爬虫框架Scrapy到底好在哪里?
框架就是做了框架的事情,这怎么说呢,你提到转 scrapy,意味着爬虫对你来说是主要工作?那你能完全不用 scrapy 也是头很铁。
因为使用框架开发速度会快很多,比如分布式部署,你难道手撸一个基于 redis 的调度系统吗?
还有中间件,shell 一些工具,都能提高效率。
基于 scrapy 开发,关注点都是数据,基于 requests,你要自己积累很多写好的代码片段,自己写很多基础功能。
你自己都说了 多线 报错处理 ip 池 要是自己不写 顺手就用呢?
还有调度部署也是 scarpy 的优点之一 县城的 scrapyd 轮子很多 方便多机部署和调度
就两个字:省事
爬虫大多是一次性或短期项目,讲求个短平快。
爬虫最大的技术难度在于突破反爬机制。各种方案经常是要改换调整的。
好处是省事,坏处是不省事
好处是在特定条件下省事,框架就是把开发者觉得可以复用、很烦的那些部分都整合好了,对于框架可适用的方面,使用者可以只写个核心的部分能跑起来,不需要写多余的代码。比如你只是爬几个简单的新闻网站,用 scrapy 这类框架就可以无视掉很多事情,只需要把解析的部分写出来就能用了。
坏处是在特定条件下不省事,由于框架本身都有优劣势场景,对于不适用的方面可能就会出现特殊需求无法满足,虽然理论上来讲可以基于框架扩展,但有些需求基于框架进行扩展会很复杂,所以这种情况下用框架还不如自己写。
为何不直接看 scrapy 的源码? 你不就明白差别在哪儿了么?
不用也行啊
回头你的工作经验从具体案例中剥离出来,就是另一个 scrapy
省事啊 框架的作用不就是节省工作吗
高级语言及框架到底好在哪?现在基本是直接汇编自己写。
想请教下高级语言及各种框架到底有啥特别之处吗?


