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
相关推荐
冰西瓜60029 分钟前
深度学习的数学原理(四十二)—— 分布式训练
人工智能·分布式·深度学习
深蓝电商API8 小时前
逆向工程入门:从Chrome DevTools到JS混淆还原
前端·javascript·chrome·爬虫·chrome devtools
WyCAGy8ij9 小时前
Redis 分布式锁进阶第四篇讲解
数据库·redis·分布式
sky丶Mamba9 小时前
从入门到进阶:网络爬虫、反爬与反反爬技术全解析
爬虫
MrJson-架构师9 小时前
AgentScope Java 2.0:打造分布式、企业级智能体底座
java·开发语言·分布式
先跑起来再说9 小时前
Go 排行榜系统的工程化实现:分布式锁、快照表与定时刷新
分布式·go·gin
ACP广源盛1392462567310 小时前
GSV2231 三屏显示扩展芯片@ACP#RTX Spark AI 终端多屏协作专属解决方案
大数据·人工智能·分布式·信息可视化·spark·电脑·音视频
探客木木夕10 小时前
分布式全球类脑智能网络架构设计
网络·人工智能·分布式·边缘计算
周末也要写八哥21 小时前
分布式技术之单机锁
分布式
Shan12051 天前
浅谈:分布式锁的系统分类
分布式