• 概念:需要搭建分布式机群,让其对一组资源进行分布联合爬取

分布式的实现

  • 安装scrapy-redis组件【爬虫】分布式爬虫
  • 原生的scrapy是不可以实现分布式爬虫的,必须让scrapy结合scrapy-redis组件一起实现分布式爬虫
  • 为什么原生的scrapy不能实现分布式?【调度器、管道不可以被分布式机群共享】
  • scrapy-redis作用:给scrapy框架提供可被共享的调度器、管道

实现流程

  • 创建一个工程

  • 创建一个CrawlSpider的爬虫文件

  • 修改原始代码
    导入from scrapy_redis.spiders import RedisCrawlSpider
    将当前爬虫类的父类修改为RedisCrawlSpider
    将allowed_domains和start_urls注释
    添加新属性redis_key,可以被共享的调度器的队列的名称
    编写数据解析相关操作

  • 修改配置文件settings
    指定使用可以被共享的管道:持久化存储到Redis数据库中
    指定调度器
    指定redis服务器:REDIS_HOST(redis远程服务器IP,若是本机127.0.0.1) REDIS_PORT

  • Redis相关操作配置
    配置Redis的配置文件:redis.windows.conf
    修改配置文件:将bind 127.0.0.1进行删除;关闭保护模式protected-mode no(命令行)

  • 结合配置文件开启redis服务(命令行)

  • 启动客户端(命令行)

  • 执行工程: scrapy runspider 爬虫.py

  • 向调度器的队列中放入一个起始url:调度器的队列在redis的客户端中,命令行。lpush xxx爬虫名 www.xxx.com

相关文章:

  • 2022-12-23
猜你喜欢
  • 2021-10-01
  • 2021-08-28
  • 2021-05-12
  • 2021-09-28
  • 2021-06-05
相关资源
相似解决方案