利用Scrap框架玩转Redis(scrap redis)

《利用Scrapy框架玩转Redis》

Redis是一种典型的高质量的key-value存储服务,随着全球互联网的发展,Redis在企业级以及大型互联网应用中的应用也愈来愈普遍。在分布式数据采集的大数据应用中,Scrapy框架的强大能力以及善于接入Redis的框架结合后,这一组合成了一种非常实用的服务。

前言完毕,动起来吧!开始我们玩转Redis,使用Scrapy框架实现redis在分布式文件数据采集平台中的应用。要调用Scrapy,我们需要在settings.py文件中添加如下代码:

“`python

#配置redis

SCHEDULER = “scrapy_redis.scheduler.Scheduler”

DUPEFILTER_CLASS = “scrapy_redis.dupefilter.RFPDupeFilter”

SCHEDULER_PERSIST = True

REDIS_URL = ‘redis://host:6379’

REDIS_HOST = ‘host’

REDIS_PORT = 6379

REDIS_ENCODING = ‘utf-8’


接下来,安装Scrapy-redis模块:

pip install scrapy-redis


我们要在spiders目录下新建数据采集模块。在采集模块中,Scrapy-redis提供了一些接口,可以在不同模块中调用,例如在爬虫模块中可以调用:

```python
from scrapy_redis.spiders import RedisSpider

接口添加完毕,在redis_spider.py里面,把业务配置添加到项目的pipelines.py中,而redis中记录需要下载的url,允许多台机器同时操作,url已经爬取完毕后,会从redis中删除,以保证url的不重复爬取:

“`python

#Redis管道文件

#redis_key的值设置为:jiaohu_spider:items

class RedisPipeline(object):

def process_item(self, item, spider):

r = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD, db=0)

data = {

‘title’: item[‘title’],

‘url’: item[‘url’],

‘date’: item[‘date’]

}

r.lpush(‘jiaohu_spider:items’, json.dumps(data))

return item


经过上述配置,Scrapy框架就可以实现数据采集平台对Redis的应用了,使得大数据采集更加高效,欢迎大家在实践中尝试!

数据运维技术 » 利用Scrap框架玩转Redis(scrap redis)