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
相关推荐
隔壁小邓30 分钟前
数据库中间件全景解析:从连接管理到分布式协同
数据库·分布式·中间件
编程小风筝38 分钟前
如何用redission实现springboot的分布式锁?
spring boot·分布式·后端
xdl25991 小时前
【Python学习】网络爬虫-爬取豆瓣电影评论
爬虫·python·学习
袁袁袁袁满4 小时前
基于亮数据MCP与LangGraph集成实现爬虫自动化
爬虫·python·网络爬虫·数据采集·爬虫实战·自动化采集·爬虫案例
尽兴-4 小时前
大厂生产级 Redis 分布式锁:从原理到避坑实战
数据库·redis·分布式·分布式锁·setnx
前端小趴菜~时倾5 小时前
python爬虫学习第二课-流程控制
爬虫·python·学习
殷紫川5 小时前
击穿分布式高可用核心:故障检测、隔离、恢复全链路架构设计与生产实战
分布式
未完成的歌~6 小时前
前端 AJAX 详解 + 动态页面爬虫实战思路
前端·爬虫·ajax
骇客野人6 小时前
使用org.redisson.api制作分布式锁
分布式
y = xⁿ6 小时前
【黑马点评二刷日记】分布式锁和Redisson
java·redis·分布式·缓存