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
相关推荐
B站计算机毕业设计超人32 分钟前
计算机毕业设计Python深度学习垃圾邮件分类检测系统 朴素贝叶斯算法 机器学习 人工智能 数据可视化 大数据毕业设计 Python爬虫 知识图谱 文本分类
大数据·人工智能·爬虫·深度学习·算法·机器学习·数据可视化
喻师傅1 小时前
Spark处理结构化数据:DataFrame、DataSet、SparkSQL
大数据·分布式·spark
xxx_520s1 小时前
kafka mirror maker之实现两个kafka集群之间的数据同步
分布式·kafka
Xwzzz_1 小时前
在RabbitMQ中四种常见的消息路由模式
分布式·rabbitmq
enjoy嚣士1 小时前
kafka 之 本地部署单机版
分布式·kafka
快手技术1 小时前
快手自研Spark向量化引擎正式发布,性能提升200%
大数据·分布式·spark
运维潇哥1 小时前
rabbitmq容器化部署
运维·分布式·docker·容器·rabbitmq
goTsHgo2 小时前
多活架构简介
分布式·架构
小白学大数据3 小时前
Django视图:构建动态Web页面的核心技术
开发语言·前端·爬虫·django·sqlite
喜欢猪猪3 小时前
Kafka支持SSL/TLS协议技术深度解析
分布式·kafka·ssl