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

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

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

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

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

23121 次点击
所在节点    Python
58 条回复
wibile
2016-09-18 14:15:22 +08:00
@est 别这么自信啊。。。谁还不用个 gevent 啊,但是写大一点的爬虫,难不成又要自己去造轮子?用 scrapy 仅仅是因为方便,除非你写轮子比较快。。。
makeapp
2016-09-18 14:19:13 +08:00
我通常都是用 requests 做测试, scrapy 做生产。不清楚 requests 上的高级用法,但 scrapy 的 pipeline , middleware 非常好用,比如数据存储,换 UA ,换 proxy , itemloader 。
ericls
2016-09-18 14:19:21 +08:00
最后我转向 elixir 了。。。。。。
est
2016-09-18 14:19:55 +08:00
@wibile 大一点的爬虫是多大。 scrapy 用什么机制保证了能够支撑这么「大」?

scrapy 方便在哪里?
makeapp
2016-09-18 14:22:34 +08:00
@est 方便在于,改下 xpath ,改下数据库存储的格式,就可以抓取几百万的数据。
est
2016-09-18 14:24:59 +08:00
@makeapp -_- 😂 👍 高级。甘拜下风。好牛逼。
julyclyde
2016-09-18 14:26:24 +08:00
你用 requests 需要写很多东西,后来你把你自己写的很多东西,单独打了个包,叫 scrapy2
killerv
2016-09-18 14:35:51 +08:00
scrapy 是个框架, requests 只能算是个类库,就好比你写项目为什么用框架一样,有很多代码你不用去写了, scrapy 会帮你完成。
killerv
2016-09-18 14:36:21 +08:00
当然你要是写个很小的项目,功能很少,自然用不上 scrapy
gimp
2016-09-18 14:39:07 +08:00
我觉得,爬虫难点在于如何获取大量稳定的代理,而这个问题是恰恰是花钱就能很好解决的。

要求用 scrapy 最可能的原因是规范一点,对整体的流程限制一下,也方便会这个框架的人以后接手。
gimp
2016-09-18 14:40:07 +08:00
技术上没法去比较优劣,跟使用者的水平有直接关系。
haogefeifei
2016-09-18 16:52:50 +08:00
最近 scrapy 的 log server 也换成了 twisted 里面的 log 了。。。
chenkun0128
2016-09-18 17:06:55 +08:00
scrapy 是一套框架,你也可以在 scrapy 中用 requests 呀,正巧最近写了点实战的例子(点我头像):-)
petelin
2016-09-18 17:17:54 +08:00
@leavic requests 加 gevent 如何
plantparknet
2016-09-18 18:00:53 +08:00
https://github.com/plantpark/Crawler-Of-Lianjia 这是我用 scrapy 写得爬虫,上手非常简单~~
yumenami
2016-09-18 19:13:26 +08:00
scrapy 的增量抓取有点麻烦,特别是历史页面有变更的情况。如果能完美解决这个问题就好了。
dsg001
2016-09-18 20:45:20 +08:00
@petelin 再加上 lxml 、 sqlite ,大部分比上 scrapy 快,比较复杂的爬虫 scrapy
petelin
2016-09-18 20:57:31 +08:00
@dsg001 恩,不讲场景就是耍流氓,我觉得他主要是胜在生态,模块,集成扩展都简单方便,讲速度你不如手动写 C 语言然后人肉汇编
mingyun
2016-09-18 22:45:59 +08:00
ericls
2016-09-19 01:32:42 +08:00
@petelin 不一定吧 爬虫的运行速度主要取决于 并发性能 一般 和 计算性能 关系不大吧

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

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

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

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

© 2021 V2EX