分布式爬虫:scrapy-redis的使用

分布式爬虫:scrapy-redis的使用

分布式爬虫:
概念:搭建一个分布式的机群,让其对一组资源进行分部联合爬取。
作用:提升爬取数据的效率。
在使用crawlspider类进行爬取测试成功后,再执行本文的操作,将该爬虫变为分布式爬虫的一部分。

一、爬虫文件的相关配置:

1.新建一个scrapy项目:在命令行界面运行

scrapy startproject fenbushi
scrapy genspider -t crawl fenbushi

2.在爬虫文件fenbushi.py中导入

from scrapy_redis.spiders import RedisCrawlSpider
  1. 注释 allowed_domains和start_urls,并添加调度器队列:
# 调度器队列名称sun,可自定义
redis_key = sun

4.将爬虫类的父类修改为RedisCrawlSpider,并编写数据解析的相关操作。

5.修改settings.py文件,添加可共享的调度器和管道类:固定代码,粘贴即可

# 管道类
ITEM_PIPELINES = {
'scrapy_redis.pipelines.RedisPipeline': 400,
}
# 去重容器类的配置
DUPEFILTERP_CLASS = 'scrapy_redis.dupefilter.RFPDupeFilter'
# 使用scrapy-redis组件自己的调度器
SCHEDULER = 'scrapy_redis.scheduler.Scheduler'
# 配置持久化,当爬虫结后是否清空Redis中请求队列和去重指纹的
# set,True代表不清空,可以有效防止中断
SCHEDULER_PERSIST = True
# 指定Redis的ip和端口号,编码格式
REDIS_HOST = ‘’127.0.0.1‘
REDIS_PORT = 6379
REDIS_ENCODING = 'utf-8'

二、redis的相关配置:
redis的安装非常简单,官网下载对应版本解压后即可:Redis官网下载
1.配置redis配置文件:redis.windows.conf,修改两处:
注释掉:bind 127.0.0.1。允许其他主机访问
2.关闭保护模式 protected-mode yes改为no
3.打开cmd命令行,开启redis服务:redis-server redis.windows.conf
4.另开一个命令行,启动客户端:redis-cli

三、启动工程
1.在pycharm中执行工程:scrapy runspider fenbushi.py,执行后会保持监听状态
2.在redis-cli界面中,向调度器的队列中放入一个起始url:lpush sun xxx.com
3.此时会根据你自己的parse_item()开始爬取相关信息。
4.爬取结束后应该在redis-cli界面中,使用keys *可以看到sun:item,lrange sun:item 0 -1可查看该列表信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值