14-2 分布式爬取配置

需先安装scrapy_redis

pip install scrapy_redis

一、settings.py

ITEM_PIPELINES = {
   'CrawlSpiderDemo.pipelines.CrawlspiderdemoPipeline': 300,
    # 分布式的爬虫的数据可以不通过本地的管道(数据不需要往本地存),数据需要存在redis数据库中,在这里需要加入一个redis数据库的管道组件
    "scrapy_redis.pipelines.RedisPipeline":400
}

# 指定Redis数据库相关配置
# Redis的主机地址
REDIS_HOST = "10.36.133.159"
# 端口号
REDIS_PORT = 6379
# 密码
# REDIS_PARAMS = {"password":'xxxx'}


# 1、调度器需要切换成Scrapy_Redis的调度器(这个调度器是Scrapy_Redis组件对scrapy原生调度器的重写,加入一些分布式调度的算法)
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
# 2、加入scrapy_redis的去重组件
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
# 3、爬取过程中是否允许暂停
SCHEDULER_PERSIST = True

2、爬虫文件(例:dushu.py)

# 引入分布式爬虫类
from scrapy_redis.spiders import RedisCrawlSpider
    # start_urls = ['https://www.dushu.com/book/1002.html'] # 分布式的爬虫所有的url都是从redis数据库的相关键下面提取

    # redis_key这个属性指定了分布式爬虫在获取url的时候从哪些键中获取的
    redis_key = "dushu:start_urls"

3. 命令行终端连接远程数据库

redis-cli -h 192.168.238.134 # 远程ip
  • 添加爬取路由
192.168.238.134:6379> lpush dushu:start_urls https://www.dushu.com/book/1005_2.html

你可能感兴趣的:(14-2 分布式爬取配置)