首页 > 其他分享 ><4> 分布式实现

<4> 分布式实现

时间:2022-11-07 20:22:05浏览次数:35  
标签:__ 实现 redis ---- scrapy key 分布式

 1 """
 2     配置 redis
 3     安装 pip3 install scrapy-redis
 4     修改scrapy项目(先正常实现scrapy爬虫):
 5 """
 6 
 7 # ----1 导入分布式爬虫类
 8 from scrapy_ redis.spiders import RedisSpider, RedisCrawlSpider
 9 # ----2 继承分布式爬虫类
10 class BookSpider(RedisSpider):
11 # ----3. 初始的 start_urls 改为 redis_key。
12     redis_key = 'key'
13 # ----4. settings中 修改调度器类和去重类
14     SCHEDULER = "scrapy_redis.scheduler.Scheduler"
15     DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
16     SCHEDULER_PERSIST = True
17 # ----5. 在settings.py文件中配置Redis
18     REDIS_URL = redis://:[password]@host:port
19          
20  -----------------------------------------------------------------------
21 # ----1 导入分布式爬虫类
22 from scrapy_ redis.spiders import RedisSpider, RedisCrawlSpider
23 # ----2 继承分布式爬虫类
24 class BookSpider(RedisSpider):
25 
26 # ----3 注销start_url & allowed_domains
27 # ----4 设置redis_key
28     redis_key = 'key'
29 # ----5 设置__init__
30     def __init__(self, *args, **kwargs):
31         domain = kwargs.pop('domain', '')
32         self.allowed_domains = list(filter(None, domain.split(',')))
33         super(BookSpider, self).__init__(*args, **kwargs)
34 # ----5 修改配置文件
35     SCHEDULER = "scrapy_redis.scheduler.Scheduler"
36     DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
37     SCHEDULER_PERSIST = True
38     REDIS_URL = redis://:[password]@host:port
39                 
40 # 注:运行时要加上domain指定的域

 

 

标签:__,实现,redis,----,scrapy,key,分布式
From: https://www.cnblogs.com/modly/p/16842765.html

相关文章

  • 后台管理系统-按钮权限控制的实现
    ps:按钮权限控制是给所有的按钮都要做判断,定义一个判断方法,此方法是一个全局的方法,可以使用混入mixins定义方法;注意混入分为全局混入和局部混入;此处使用全局混......
  • xp下GetLastError实现
      大家对这个win32API一定很熟悉了,那就来看下他的实现:0:001>x*!GetLastError//搜索符号地址7c830759kernel32!GetLastError=<notypeinformation>0:001>uf7......
  • 23 种设计模式C++实现
    设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:​​单例模式​​、​​原型模式​​、​​工厂方法模式​​、​​抽象工厂模式​​、​​建造者模式​​。结构......
  • 后台管理系统-权限控制的实现
    ps:服务器返回用户的权限标识;主要在登录的时候判断用户的权限1.左侧菜单显示 2.路由的页面跳转-使用addRoutes增加动态路由规则并注入路由实例rout......
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
    (建议初学者把这个系列前面的都看看,那对于redis的基本使用操作及一些消息的订阅分布都是没问题的了)Redis,一个缓存数据库。不仅仅是能用于对数据的CRUD,也可以作为一个消息中间......
  • SECURITY_ATTRIBUTES 实现最低权限总结
    SetSecurityDescriptorDacl函数可以用来设置DACL中的信息。如果一个DACL已经在securitydescriptor中存在,那么此DACL将被替换。值得注意的是MSDN中的Remarks中有这样的描......
  • 在线升级:OTA升级的原理和实现方式
    在平常的项目开发和调试中,下载程序一般使用的是外部下载器或者串口的方式实现对单片机的程序下载和刷新,这种方法在项目的开发阶段是常用的方式。但是当项目开发完成推向市场......
  • vue实现展开收起
    通过设置css超出换行,监听是否超出所设置的值,重新对数据插入标识,并刷新dom树实现。<divclass="class-datas"> <pclass="datas-title">可排课专业:</p> <p:class="`${......
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
    前言 该篇介绍的内容如题,就是利用redis实现接口的限流( 某时间范围内最大的访问次数) 。正文 惯例,先看下我们的实战目录结构:首先是pom.xml核心依赖: <!--用于redis......
  • Springboot 自定义mybatis 拦截器,实现我们要的扩展
    前言相信大家对拦截器并不陌生,对mybatis也不陌生。有用过pagehelper的,那么对mybatis拦截器也不陌生了,按照使用的规则触发sql拦截,帮我们自动添加分页参数。那么今天,我们的实......