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
相关推荐
24 分钟前
TIDB——TIKV——raft
数据库·分布式·tidb
永亮同学2 小时前
【探索实战】从零开始搭建Kurator分布式云原生平台:详细入门体验与功能实战分享!
分布式·云原生·交互
3 小时前
TIDB——TIKV——读写与coprocessor
数据库·分布式·tidb·
失败又激情的man3 小时前
爬虫逆向之观安(观镜WEB应用安全防护系统)
爬虫
qq 8762239654 小时前
永磁同步电机二阶线性/非线性自抗扰控制器(ADRC)的Matlab Simulink模型与三阶...
scrapy
4 小时前
TIDB——PD(placement Driver)
java·数据库·分布式·tidb·
Alluxio5 小时前
Alluxio正式登陆Oracle云市场,为AI工作负载提供TB级吞吐量与亚毫秒级延迟
人工智能·分布式·机器学习·缓存·ai·oracle
武子康5 小时前
Java-204 RabbitMQ Connection/Channel 工作流程:AMQP 发布消费、抓包帧结构与常见坑
java·分布式·消息队列·rabbitmq·ruby·java-activemq
zhz52145 小时前
代码之恋(第十五篇:分布式心跳与网络延迟)
网络·分布式·ai·重构·vue·结对编程
小心我捶你啊6 小时前
正向代理与反向代理两者的核心区别
网络·爬虫·网络协议