• 分布式爬虫


    分布式爬虫介绍

    什么是分布式爬虫?

    分布式爬虫是将多台电脑构建成一个机群,然后将爬虫程序部署在机群内的每台电脑上进行执行爬取任务,最终将所有的数据进行

    分布式爬虫的作用

    提高爬取效率

    分布式爬虫的简单实现

    由于原生scrapy的五大组件的不能实现共享,数据无法整合,所以必须通过scrapy和scrapy_redis组件结合进行实现

    Scrapy_redis组件

    作用:

    给原生scrapy框架提供可以被共享的管道和调度器

    实现流程

    1、基于CrawlSpider创建一个项目:爬取阳光网信息

    2、修改爬虫文件:

    • 导包  from scrapy_redis.spiders import RedisCrawlSpider ,让爬虫类继承” RedisCrawlSpider“类
    • 注释 allowed_ddomainx和 start_urls,添加新属性: redis_key = "name" # name为被共享的调度器队列的名称 
    • 完成数据解析代码编写

    3、修改配置文件:settings.py

    • 设置管道类为可以被共享的管道,即scrapy_redis中的管道类  ITEM_PIPELINES = { 'scrapy_redis.pipelines.RedisPipeline':300 ,} 
    • 设置调度器:
    # 增加一个去重容器配置,作用:使用Redis的Set集合存储请求的数据,从而实现去重数据的持久化
    DUPEFILTER_CALSS = "scrapy_redis.dupefilter.REPPDupeFilter"
    
    # 使用scrapy_redis的调度器
    SCHEDULER = "scrapy_redis.scheduler.Scheduler"
    # 配置调度器是否持久化,即爬虫结束后,是否清除Redis中的请求队列和去重指纹数据,为True时,表示不再对爬取过的数据进行爬取
    SCHEDULER_PERSIST = True

    4、配置redis的配置文件: redis.conf

    # 关闭ip访问限制
    #bind 127.0.0.1 ::1
    
    # 关闭保护模式  yes:其他客户端只能读取不能写入数据   no:可读可写
    protected-mode no

    5、启动redis-server

    redis-server 配置文件

    scrapy_redis组件安装 :   pip install scrapy_redis  

    由于我们需要使用scrapy_redis组件的实现共享管道和调度器,所以需要继承scrapy_redis中的” RedisCrawlSpider“类

    from scrapy_redis.spiders import RedisCrawlSpider
    class FbsSpider(RedisCrawlSpider):
        pass

    将起始url和域名列表进行注释,添加参数:

        # allowed_domains = ['www.xxx.com']
        # start_urls = ['http://www.xxx.com/']
        redis_key = "sun"  # sun为任意设置
  • 相关阅读:
    诸暨集训游记
    P2678 跳石头
    P1577 切绳子
    P1328 生活大爆炸版石头剪刀布
    P1067 多项式输出
    分解因数
    【管理篇】团队组织与架构演进方法论
    【状态机】行为状体机和协议状态机
    【数据库】分库分表
    【OLAP】从数仓到Kappa架构
  • 原文地址:https://www.cnblogs.com/fanhua-wushagn/p/12995835.html
Copyright © 2020-2023  润新知