Scrapy-redis分布式爬虫配置

Scrapy-redis分布式爬虫配置

基础步骤

创建工程
cd到工程目录
创建爬虫文件
  • 基于spider的爬虫文件
  • 基于CrawlSpider的爬虫文件
修改爬虫类:
  • 爬虫文件中:
from scrapy_redis.spiders import RedisCrawlSpider

class FbsSpider(RedisCrawlSpider):
    name = 'fbs'
    # allowed_domains = ['www.xx.com']
    # start_urls = ['https://www.xx.com/']
    redis_key = ''
  • 导入RedisCrawlSpider

  • 修改当前爬虫类继承的父类为RedisCrawlSpider

  • allowed_domainsstart_urls都不需要

  • 添加新属性:redis_key = 'fbsQueue'。它表示的是 可以被共享的调度器队列的名称。

  • 编写爬虫类的其他常规操作。

setting.py配置
  • Robots协议

  • UA伪装

  • 管道的指定:

    ITEM_PIPELINES = {
        'scrapy_redis.pipelines.RedisPipeline': 400,
    }
    
  • 调度器的指定

    # 去重容器类的配置,使用Redis的set集合来存储请求的指纹数据,从而实现请求去重的持久化
    DUPEFILTER_CLASS = 'scrapy_redis.dupefilter.RFPDupeFilter'
    # 使用 scrapy-redis 自己的调度器
    SCHEDULER = 'scrapy_redis.scheduler.Scheduler'
    # 配置调度器是否持久化,True表示持久化,不清空请求队列,那么就可以增量式爬虫
    SCHEDULER_PERSIST = True   # 增量式配置
    
  • 指定redis数据库

    REDIS_HOST = 'redis服务的ip地址'
    REDIS_PORT = 6379
    
redis相关配置

找到配置文件(redis.windows.conf):

  • 关闭默认绑定:注释掉:bind 127.0.0.1 大概在56行

  • 关闭redis保护模式:protected-mode yes其中的yes改为no。大概在75行

  • 启动redis的服务端和客户端:

    redis-server.exe redis.windows.conf
    
    redis-cli
    
  • 启动程序:

    cd 到爬虫文件对应的目录,然后:
    scrapy runspider xxx.py
    

    向调度器的队列中 扔一个起始URL(队列是存在于redis中):

    redis客户端输入:

    > lpush fbsQueue https://www.xx.com
    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值