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
相关推荐
深蓝电商API2 小时前
reCAPTCHA/hCaptcha/Turnstile三大国际验证码对比研究
爬虫·recaptcha·hcaptcha·turnstile
深蓝电商API5 小时前
从零训练自己的验证码识别模型:数据生成到部署
爬虫·验证码
ly76898 小时前
Redis 分布式锁的边界条件:Redlock 争议、锁续期与客户端崩溃后的互斥失效
数据库·redis·分布式·分布式锁·watchdog·redlock
灯澜忆梦10 小时前
【minio】#5 | MinIO 分布式部署 + HTTPS 部署
分布式·网络协议·https·对象存储·minio
谢亮_vipxieliang20 小时前
Spring Cloud 服务治理入门:注册发现、配置中心、网关限流、熔断降级与分布式一致性方案
分布式·spring·spring cloud
樱花落木兰1 天前
分布式登录实战:Session 会话共享改造,Redis 存储用户登录状态
java·javascript·数据库·redis·分布式·缓存
wuyk5551 天前
Python 网络爬虫入门到实战 第 04 章:请求头、UA 伪装、超时、异常处理、基础反爬绕过
开发语言·爬虫·python
ShineWinsu1 天前
对于Redis:Steam、Geospatial、Hyperloglog、Bitmap、Bitfield类型的解析
数据库·c++·redis·分布式·缓存·面试·zset
weixin_440401691 天前
质朴的爬虫+数据处理
爬虫·python·数据分析·pandas
Flynt2 天前
Redis Cluster主节点挂了,为什么"高可用"还全员掉线?我把三次kill的记录翻出来了
数据库·redis·分布式