关于Sina.pipelines.SinaPipeline的设置

来源:10-4 scrapy-redis编写分布式爬虫代码

qq_拱手河山讨欢_0

2019-05-20

ITEM_PIPELINES = {

‘Sina.pipelines.SinaPipeline’: 300,

'scrapy_redis.pipelines.RedisPipeline': 400,

}
设置了这个参数,我们就不用自己写Pipeline,然后数据就会自动吧爬取的数据保存到redis数据库。
然后我有2个疑问?
1:redis是基于内存的,如果我们爬取数据量过大,对内存造成的压力就变大了,这种模式是否就不适用了?
2:我们怎么从redis上把我们需要的数据重新保存进我们的数据库,或者说我们该怎么写,写在什么地方。?

写回答

2回答

qq_拱手河山讨欢_0

提问者

2019-05-22

好的,学习Kafka需要懂java吗

0
1
bobby
不需要 kafka只一个服务,python也有接口。,直接使用python和kafka交互就行了
2019-05-23
共1条回复

bobby

2019-05-22

  1. redis是基于内存的,但是redis支持分布式,所以可以搭建多台服务器来加大内存,但是如果数据过大的话,对内存的要求就太高了。不过如果解析和入库的速度跟得上的话,可以快速消费这些数据的话就没有问题,不过不管如何一旦解析和入库的任务挂掉的话,还是会让redis快速的消耗掉内存,所以我不太建议将爬取的原始数据保存在redis中,如果要保存的,kafka会是更好的选择,不过kafka的入门门槛会高一点,不过学习成本是很值得的,kafka是我非常推荐的

  2. 如何要从redis中消费数据的话你看看这里的RedisPipeline的源码知道数据如何保存到redis中,你就知道如何取出数据了

0
0

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5796 学习 · 6290 问题

查看课程