Scrapy-redis 实现分布式

概念:搭建一个分布式的机群,让其对一组资源进行分布式爬取。
作用:提升爬虫的效率

1.安装scrapy-redis的组件
2.scrapy-redis组件的作用: 可以给原生的scrapy框架提供可以被共享的调度器和管道。

1.创建一个工程
2.创建一个基于CrawlSpider的爬虫文件。

3.修改当前的爬虫文件:

       1.   导包:
           from scrapy_redis.spiders import RedisCrawlSpider 
       2 将start_urls和allowed_domains进行注释
       3  添加一个新的属性值:redis_key = 'xxxx' 可以被共享的调度器名称
       4  编写数据解析相关的工作
       5  将当前爬虫继承的父类改写成 RedisCrawlSpider

4.修改settings配置文件

ITEM_PIPELINES = {
    'scrapy_redis.pipelines.RedisPipeline':400
}

DUPEFILTER_CLASS = 'scrapy_redis.dupefilter.RFPDupeFilter'

SCHEDULER = 'scrapy_redis.scheduler.Scheduler'

SCHEDULER_PERSIST = True

REDIS_HOST = 'redis的服务器ip地址'
REDIS_POST = '6379'

5.redis相关操作配置:

6 执行工程:scrapy runspider xxx.py
7. 像调度器队列放入一个起始的url:调度器的队列在redis客户端中: lpush xxx(redis_key) www.xxx.com
8. 爬取到的数据储存在redis的proName:items这个数据结构当中
9.查看数据:在redis的客户端输入:1. keys* 2.lrange xxx:items 0 -1 (显示爬到的数据) 3. llen xxx:items(看爬了多少数据)

Original: https://blog.csdn.net/RayMand168/article/details/116175002
Author: 你很棒滴
Title: Scrapy-redis 实现分布式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/792374/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球