分布式爬虫
- 概念:我们需要搭建一个分布式的机群,让其对一组资源进行分布联合爬取。
- 作用:提升爬取数据的效率

- 如何实现分布式?
  - 安装一个scrapy-redis的组件
爬取到的数据自动存放在redis中
  - 原生的scarapy是不可以实现分布式爬虫,必须要让scrapy结合着scrapy-redis组件一起实现分布式爬虫。
  - 为什么原生的scrapy不可以实现分布式?
    - 调度器不可以被分布式机群共享
    - 管道不可以被分布式机群共享
- scrapy-redis组件作用:
  - 可以给原生的scrapy框架提供可以被共享的管道和调度器
- 实现流程
  - 创建一个工程
  - 创建一个基于CrawlSpider的爬虫文件
  - 修改当前的爬虫文件:
    - 导包:from scrapy_redis.spiders import RedisCrawlSpider
    - 将start_urls和allowed_domains进行注释
    - 添加一个新属性:redis_key = 'sun' 可以被共享的调度器队列的名称
    - 编写数据解析相关的操作
    - 将当前爬虫类的父类修改成RedisCrawlSpider
  - 修改配置文件settings
    - 指定使用可以被共享的管道:
      ITEM_PIPELINES = {
      'scrapy_redis.pipelines.RedisPipeline': 400
      }
  - 指定调度器:
    # 增加了一个去重容器类的配置, 作用使用Redis的set集合来存储请求的指纹数据, 从而实现请求去重的持久化
    DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
    # 使用scrapy-redis组件自己的调度器
    SCHEDULER = "scrapy_redis.scheduler.Scheduler"
    # 配置调度器是否要持久化, 也就是当爬虫结束了, 要不要清空Redis中请求队列和去重指纹的set。如果是True, 就表示要持久化存储, 就不清空数据, 否则清空数据
    SCHEDULER_PERSIST = True
  - 指定redis服务器:
    REDIS_HOST = 'ip'
    REDIS_PORT = 'port'

- redis相关操作配置:
  - 配置redis的配置文件:
    - linux或者mac:redis.conf
    - windows:redis.windows.conf
    - 代开配置文件修改:
      - 将bind 127.0.0.1进行删除
      - 关闭保护模式:protected-mode yes改为no
  - 结合着配置文件开启redis服务
    - redis-server 配置文件
  - 启动客户端:
    - redis-cli
- 执行工程:
  - scrapy runspider xxx.py
- 向调度器的队列中放入一个起始的url:
  - 调度器的队列在redis的客户端中
    - lpush xxx(redis_key即共享的调度器) www.xxx.com
- 爬取到的数据存储在了redis的proName:items这个数据结构中

将同一份代码多台电脑同时执行,任意一个客户端将人物放入调度器的队列后,机群共同爬取。

Scrapy框架(九)--分布式爬虫的更多相关文章

  1. 基于scrapy框架的分布式爬虫

    分布式 概念:可以使用多台电脑组件一个分布式机群,让其执行同一组程序,对同一组网络资源进行联合爬取. 原生的scrapy是无法实现分布式 调度器无法被共享 管道无法被共享 基于 scrapy+redi ...

  2. 基于Python,scrapy,redis的分布式爬虫实现框架

    原文  http://www.xgezhang.com/python_scrapy_redis_crawler.html 爬虫技术,无论是在学术领域,还是在工程领域,都扮演者非常重要的角色.相比于其他 ...

  3. 爬虫开发14.scrapy框架之分布式操作

    分布式爬虫 一.redis简单回顾 1.启动redis: mac/linux:   redis-server redis.conf windows: redis-server.exe redis-wi ...

  4. scrapy框架之分布式操作

    分布式概念 分布式爬虫: 1.概念:多台机器上可以执行同一个爬虫程序,实现网站数据的分布爬取. 2.原生的scrapy是不可以实现分布式爬虫? a)调度器无法共享 b)管道无法共享 3.scrapy- ...

  5. 6 scrapy框架之分布式操作

    分布式爬虫 一.redis简单回顾 1.启动redis: mac/linux:   redis-server redis.conf windows: redis-server.exe redis-wi ...

  6. scrapy如何实现分布式爬虫

    使用scrapy爬虫的时候,记录一下如何分布式爬虫问题: 关键在于多台主机协作的关键:共享爬虫队列 主机:维护爬取队列从机:负责数据抓取,数据处理,数据存储 队列如何维护:Redis队列Redis 非 ...

  7. scrapy——7 scrapy-redis分布式爬虫,用药助手实战,Boss直聘实战,阿布云代理设置

    scrapy——7 什么是scrapy-redis 怎么安装scrapy-redis scrapy-redis常用配置文件 scrapy-redis键名介绍 实战-利用scrapy-redis分布式爬 ...

  8. 基于Python使用scrapy-redis框架实现分布式爬虫

    1.首先介绍一下:scrapy-redis框架 scrapy-redis:一个三方的基于redis的分布式爬虫框架,配合scrapy使用,让爬虫具有了分布式爬取的功能.github地址: https: ...

  9. python学习之-用scrapy框架来创建爬虫(spider)

    scrapy简单说明 scrapy 为一个框架 框架和第三方库的区别: 库可以直接拿来就用, 框架是用来运行,自动帮助开发人员做很多的事,我们只需要填写逻辑就好 命令: 创建一个 项目 : cd 到需 ...

  10. Scrapy框架——CrawlSpider类爬虫案例

    Scrapy--CrawlSpider Scrapy框架中分两类爬虫,Spider类和CrawlSpider类. 此案例采用的是CrawlSpider类实现爬虫. 它是Spider的派生类,Spide ...

随机推荐

  1. 基于开源PolarDB-X打造中正智能身份认证业务数据基座

    简介: 在10月25日由阿里云开发者社区.PolarDB开源社区.infoQ联合举办的「开源人说」第三期--<数据库PolarDB专场>沙龙上,中正智能科技有限公司平台软件部研发总监韩毅带 ...

  2. 基于 EventBridge 构建数据库应用集成

    ​简介:本文重点介绍 EventBridge 的新特性:数据库 Sink 事件目标. 作者:赵海 引言 事件总线 EventBridge 是阿里云提供的一款无服务器事件总线服务,支持将阿里云服务.自定 ...

  3. 零基础玩转SLS日志查询-SLS Query Builder发布

    ​简介:日志服务(Log Service,简称 SLS) 是阿里云提供的行业领先的日志大数据解决方案,一站式提供数据收集.清洗.分析.可视化.告警等功能.智能查询分析是数据中台重要的一环,SLS支持秒 ...

  4. WPF 已知问题 dotnet 6 设置 InvariantGlobalization 之后将丢失默认绑定转换导致 XAML 抛出异常

    在设置了 InvariantGlobalization 为 true 之后,将会发现原本能正常工作的 XAML 可能就会抛出异常.本文将告诉大家此问题的原因 这是有开发者在 WPF 仓库上给我报告的 ...

  5. dotnet OpenXML 聊聊文本段落对齐方式

    本文来和大家聊聊在 OpenXML 里面,文本段落对齐方式.在 Word 和 PPT 的文本段落对齐规则是相同的,对齐的规则比较多,本文将一一告诉大家 文本的段落对齐,需要设置给段落属性上,在 Ope ...

  6. SQL server 树形递归查询

    1,原始查询 原始表格查询: select * from dbo.T_DeptInfo; 原始表格查询结果: 2,递归查询 -- with 一个临时表(括号里包括的是你要查询的列名) with tem ...

  7. zabbix API笔记

    python简单demo 输出id为111主机的主机群组信息 import requests import json request_headers = {"Content-Type&quo ...

  8. 2021~2022Apache大数据相关项目盘点

    一.晋升为Apache TLP(Top-Level Project)的大数据相关项目 1.1.Apache DataSketches (20210203) 1.2.Apache Gobblin (20 ...

  9. 第五章-WAF 绕过

    WAF 绕过 1.WAF分类 1.1.软件 WAF 一般被安装到 Web 服务器中直接对其进行防护,能够接触到服务器上的文件,直接检测服务器上是否有不安全的文件和操作等. 常见的软件:安全狗.云盾.云 ...

  10. gin+grom 求当天的数据列表 0点到24点

    框架go-admin gin+gorm mysql表 CREATE TABLE `sq_user_ticket` ( `id` bigint(20) NOT NULL AUTO_INCREMENT C ...