首页 > 其他分享 >scrapy分布式爬虫构建步骤

scrapy分布式爬虫构建步骤

时间:2023-03-08 23:34:00浏览次数:43  
标签:xxx redis 调度 爬虫 scrapy 分布式

分布式爬虫实现步骤:

1.安装一个scrapy-redis的组件

原生的scrapy不能实现分布式爬虫,必须要让scrapy结合scrapy-redis组件一起实现分布式爬虫。原因是因为原生的scrapy的调度器和管道不可以被分布式集群共享,不能实现集群之间整体的调度。scrapy-redis组件的作用可以给原生的scrapy框架提供可以被共享的管道和调度器。

2.实现流程

  • 创建一个工程
  • 创建一个基于CrawlSpider的爬虫文件
  • 修改当前的爬虫文件:
    • 导包:from scrapy_redis.spider import RedisCrewlSpider
    • 将start_urls和allowed_domains进行注释
    • 添加一个新的属性:redis_key='xxx' (可以被共享的调度器队列的名称)
    • 编写数据解析相关的操作
    • 将当前爬虫类的父类修改成RedisCrawlSpider
  • 修改配置文件settings
    • 指定使用可以被共享的管道:

      ITEM_POPELINES={
          ‘scrapy_redis.pipelines.RedisPipeline': 400
      }

    • 指定调度器:
      • 增加一个去重容器类的配置,使用Redis的set集合来存储请求的数据,实现信息去重持久化

        DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

      • 使用scrapy-redis组件自己的调度器

        SCHEDULER = "scrapy_redis.scheduler.RFPDupeFilter"

      • 配置调度器是否要持久化,即爬虫结束,是否要清空redis中请求队列

        SCHEDULER_PERSIST = True

      • 指定redis服务器:
        • 配置redis的配置文件redis.conf
          • 将bind 127.0.0.1删除
          • 关闭保护模式:protected-mode yes改为no
        • 启动redis
  • 执行工程:
    • scrapy runspider xxx.py
  • 向调度器的队列中放入一个起始的url
    • 调度器的队列在redis的客户端中:lpush xxx www.xxx.com

标签:xxx,redis,调度,爬虫,scrapy,分布式
From: https://www.cnblogs.com/jinbb/p/17196678.html

相关文章

  • 分布式数据库代理导出分片大表僵死或卡死原因分析及调优
    1、背景现象****分布式数据库导出分片大表代理卡死或者代理僵死2、 ****分布式数据库导出小表或者不是分片表时发现数据可以导出,但是当数据量大时就没法导出数据,再复现一......
  • Java分布式应用:性能调优
    第五部分性能调优性能瓶颈的表象:1.资源消耗过多、外部处理系统的性能不足2.资源消耗不多,但程序的响应速度不够关于CPU通常使用时间片、多核的方法达到对CPU的分割;每个C......
  • Java分布式应用:分布式Java应用与Sun JDK类库
    第四部分分布式Java应用与SunJDK类库集合包CollectionList接口:List接口:List(有序、可重复)的实现类有ArrayList、Vector、LinkListArrayList、Vector底层是通过数组实现......
  • Java分布式应用:深入了解JVM
    第三部分深入理解JVMJava代码的执行过程Java源码编译机制javac将java源码转换成javaclass字节码java运行javaclass字节码Java编译后产生的是字节码,在运行的时候将字......
  • Python中的爬虫究竟是什么?
    其实所谓的上网就是用客户端的机器去请求目标网站的计算机,然后通过目标计算机反馈下载数据到本地的一个过程,只是用户获取数据时通过浏览器提交请求->下载网页代码->解析/......
  • 如何提高爬虫工作效率
    单进程单线程爬取目标网站太过缓慢,这个只是针对新手来说非常友好,只适合爬取小规模项目,如果遇到大型项目就不得不考虑多线程、线程池、进程池以及协程等问题。那么我们该如......
  • 分布式事务-最大努力通知 20230307
              ......
  • 2023爬虫学习笔记 -- m3u8视频下载
    一、目标地址https://www.XXXX.com/二、获取mu38文件1、点击XHR,刷新页面,会看到这里有两个m3u8文件2、将m3u8地址复制到浏览器,会自动下载下来,index内容如下mixed内容如下3、......
  • Scrapy计划表
    第一步Scrapy一览:理解Scrapy是什么,他能帮到你什么安装指南:在电脑上安装ScrapyScrapy教程:编写第一个Scrapy项目示例:通过前人写好的Scrapy项目进行学习基础概念命令行工具:学......
  • Word2vec之情感语义分析实战(part3)--利用分布式词向量完成监督学习任务
    引言这篇博客将基于前面一篇博客Part2做进一步的探索与实战。demo代码与数据:传送门单词的数值化表示前面我们训练了单词的语义理解模型。如果我们深入研究就会发......