请问使用 scrapy 的优势是什么?直接用 requests 不是很简单?

2016-09-18 11:08:27 +08:00
 hippoboy

从接触爬虫开始就一直使用 requests,每每和身边人说起来,得到的回答都是 requests 更好用,没必要使用 scrapy

但是看了好多公司的招聘,上面还是有要求使用 scrapy,我觉得这个 scrapy 肯定有它的过人之处?

求教各位朋友,能否让我豁然开朗一下?

23147 次点击
所在节点    Python
58 条回复
jackon
2016-09-19 01:56:36 +08:00
新手讨论如何爬的更快。
受过伤的都在研究怎么慢一点爬。

单站,单线程不 sleep 都被封,
不理解多线程的需求哪里来的。

多站,一个进程负责一个站就好了。
揉在一起搞个高并发框架,意义也不大。

然后就发现, scrapy 能复用的代码,好像不多。
自己 requests 库写,也没几行代码。

然后,就用这么原始的技术写爬虫,
接了几个小项目,赚了 6 位数。
xuxiongrui
2016-09-19 02:01:16 +08:00
@jackon
...
...
接了几个小项目,赚了 6 位数。
====================================================
大神求带,请问大神有没有微信号微信群之类的?
Override
2016-09-19 05:35:37 +08:00
scrapy 是一套解决特定问题的方案,如果你的需求刚好是 scrapy 能解决的,那么 scrapy 就很方便了
dsg001
2016-09-19 07:15:10 +08:00
@jackon 球带,能简单说下什么小项目?
markx
2016-09-19 07:51:26 +08:00
楼上有人说的好, 二者区别就是 scrapy 是框架, requests 是库。
crab
2016-09-19 08:38:10 +08:00
@leavic python 不支持多线程 requests 吗
ytmsdy
2016-09-19 09:27:40 +08:00
自己手动实现一下多线程调度还有各种异常的处理就知道为什么要用 scrapy 了,话说当年我也是这么想的,直到接到一个非常 BT 的小项目才开始学习 scrapy
Allianzcortex
2016-09-19 09:52:17 +08:00
刚好都用过,,我来说一下⊙﹏⊙b : requests 是库, scrapy 是框架。 gevent 的 monkey_patch 是支持 requests 的,但每次写的时候都要控制 gevent 连接不是很烦嘛。。所以当然希望能封装一个出来,只要我定义好链接和规则以及一些参数,就能自动爬取多好,于是就有了 scrapy 。 scrapy 基于 twisted 异步, twisted 太扭曲了,没有用过, gevent 是用协程以同步的方式来避免阻塞。目前我知道的是有师兄在友盟,当时他们准备用 scrapy 来抓数据,所以 scrapy 真正用于工业级别的生产还是不少的。当时还准备自己写一个爬虫框架,自己抓取代理,提供 gevent 和多线程什么的: https://github.com/Allianzcortex/Seaeels ,一个 demo 已经完了,但目测要坑。。业余时间已经不是太想做爬虫这方面了
est
2016-09-19 09:56:48 +08:00
@jackon 顶。

scrapy 才不是什么工业级的。就一个普通框架而已。
leavic
2016-09-19 10:35:38 +08:00
@crab 这种被 io 阻塞的东西,异步协程(本质是单线程,但 io 部分被抽离成多线程并发的效果)要比多线程好得多,多线程要考虑互斥量信号量这些东西,本身又是一个坑。

twisted 内部其实就挺复杂了,就是把这个异步过程简单化了方便我们使用,自己用多线程造轮子吃力不讨好啊。
brucedone
2016-09-19 12:44:37 +08:00
@est scrapy 不敢说工业级,不过已经被我拓展成公司级的, docker 打包 + 中间件 + 调度 + 监控,很方便出量。其实 scrapy 还是满容易拓展的。
xiaket
2016-09-19 12:48:32 +08:00
scrapy 的 api 好丑...
brucedone
2016-09-19 12:49:01 +08:00
mathgl
2016-09-19 12:51:28 +08:00
@brucedone 工业级是怎么定义的?我觉得能商用就可以算为“工业级”了。
slysly759
2016-09-19 12:58:00 +08:00
@brucedone 嘿嘿活捉大鱼 大神~
liko
2016-09-20 10:02:01 +08:00
requests + gevent
newzy
2017-12-06 12:44:11 +08:00
一群傻逼。。。。鉴定完毕,有空在这儿扯犊子,没时间去提升一下自己的技术!
jakeyfly
2018-02-28 11:54:43 +08:00
@gouchaoer 这才是真的会爬虫的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/306922

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX