scrapy分布式、断点续连爬虫开发框架RedisSpider使用教程

一、爬虫文件

使用RedisSpider为继承父类,添加redis_key

python 复制代码
import scrapy
from ..items import NewsItem
from scrapy_redis import spiders

class CbsnewsSpiderSpider(spiders.RedisSpider):
    name = "abc_spider"
    # allowed_domains = ["www.abc.com"]
    # start_urls = ["https://www.abc.com/"]
    redis_key = 'abc:start_urls'    # redis队列关键字,使用 lpush abc:start_urls https://www.abc.com/ 放入初始网址,程序自动GET请求

    def parse(self, response):
        """
        第一层:解析自动GET请求的初始网址
        :param response:
        :return:
        """
        abc_list = response.xpath('//nav[@class="header__nav"]//a/@href').extract()
        if not abc_list:
            return
        for column_url in abc_list:
            yield scrapy.Request(column_url, callback=self.abc_source, meta={'column_url': column_url})

    def abc_source(self,response):
        """
        第二层:解析第一层获取并请求回来的网址
        :param response:
        :return:
        """
        column_url = response.meta['column_url']
        print(column_url)
        pass

二、settings.py配置

项目settings.py文件增加下面代码即可

python 复制代码
# 增加redis地址、端口
REDIS_HOST = '127.0.0.1'
REDIS_PORT = 6379

# 配置scrapy-redis调度器
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
# 配置爬取去重
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
# 断点续连,不用从头开始爬
SCHEDULER_PERSIST = True
相关推荐
搞科研的小刘选手3 小时前
【中山大学主办】第六届计算机科学与区块链国际学术会议(CCSB 2026)
分布式·神经网络·计算机视觉·区块链·计算机科学·共识算法·自然语言
小饼干在学嘎瓦4 小时前
本地缓存和分布式缓存如何选择?
分布式·缓存
跨境数据猎手4 小时前
Superbuy淘宝代购集运系统架构拆解,复刻方案参考
爬虫·架构·系统架构
XLYcmy5 小时前
全链路验证测试系统:一个针对智能代理(Agent)系统全链路能力的自动化验证脚本
分布式·python·http·网络安全·ai·llm·agent
phltxy14 小时前
HAProxy安装与RabbitMQ负载均衡配置
分布式·rabbitmq·负载均衡
jiayong2315 小时前
Kafka 高吞吐消息链路常见面试问题及详细解答
分布式·面试·kafka
卷毛迷你猪16 小时前
快速实验篇(A2-2)数据清洗规则修正与多语言实现验证
hadoop·分布式
业精于勤_荒于稀16 小时前
登录鉴权-ai
分布式
Kurisu57517 小时前
深度拆解:从 CAP 定理到 Raft 协议的分布式一致性演进
分布式
kuokay18 小时前
深入理解 LLM 分布式训练全栈:从硬件到 LLaMA-Factory
分布式·llama·deepspeed·fsdp·llama-factory·accelerate