环境搭建
需要安装 scrapy 和 scrapy-redis
pip install scrapy pip install scrapy-redis
1
2
3
安装配置好 redis
如果是mac种用homebrew安装的redis,配置文件路径为:
/usr/local/etc/redis.conf
修改配置文件
# bind 127.0.0.0bind 0.0.0.0
第一步,配置settings.py
# 指定Redis数据库REDIS_URL = "redis://localhost:6379"# 使用scrapy-redis 的调度器替代原版调度器SCHEDULER = "scrapy_redis.scheduler.Scheduler"# 使用scrapy-redis 的去重过滤器替代原版DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"# 启用scrapy-redis 的 RedisPipelineITEM_PIPELINES = { "scrapy_redis.pipelines.RedisPipeline": 300, }# 爬虫停止后保留请求队列和去重集合SCHEDULER_PERSIST = True, # False: 清理(默认)
第二步,修改爬虫文件
from scrapy_redis.spiders import RedisSpider# 1. 修改基类: Spider -> RedisSpiderclass BooksSpider(RedisSpider): name = "books" # 2. 删除start_urls
第三步,启动爬虫
在各个服务器启动爬虫,爬虫将会进入等待状态
scrapy crawl books
第四步,发送爬虫起点
# 先启动redis $ redis-cli > lpush books:start_urls "http://www.baidu.com"
第五步,导出数据
# -*- coding: utf-8 -*-# @File : export_data.py# @Date : 2018-05-21# 从redis数据库导出数据import jsonimport redisfrom pprint import pprint# redis中存放数据的keyITEM_KEY = "books_distribution:items"def process_item(item): """处理数据 :param item{dict}: 单条数据 :return: None """ pprint(item) r = redis.Redis(host="localhost", port=6379)for _ in range(r.llen(ITEM_KEY)): data = r.lpop(ITEM_KEY) item = json.loads(data) process_item(item)
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦