zoukankan      html  css  js  c++  java
  • 七月在线爬虫班学习笔记(八)——分布式爬虫框架设计

    第八课主要内容:

    • 分布式爬虫框架简介(控制模式与自由模式)
    • 消息队列
    • Redis介绍操作及队列应用
    • Scrapy-Redis介绍及项目实战

    这节课主要是代码的讲解,并且讲解了scrapy-redis部分的源码;最后给出了一个爬虫代码实例。关于scrapy-redis的代码大家自行下载学习即可。

     

     

    操作redis实例:

    import redis
    
    r = redis.Redis(host = 'localhost', port = 6379, db = 1)
    r.set('k1', 'v1')
    r.set('k2', 'v2')
    print(r.get('k1'))
    print(r.keys())
    print(r.dbsize())
    r.delete('k2')
    print(r.keys())
    print(r.dbsize())
    print(dir(r))
    
    #pipeline
    p = r.pipeline()
    p.set('k3', 'v3')
    p.set('k4', 'v4')
    p.incr('num')
    p.incr('num')
    p.execute()
    print(r.get('num'))
    
    import redis
    
    class Task:
        def __init__(self):
            self.rcon = redis.Redis(host = 'localhost', db = 5)
            self.queue = 'task:prodcons:queue'
    
        def process_task(self):
            while True:
                task = self.rcon.blpop(self.queue, 0)[1]
                print('Task: ', task)
    
    Task().process_task()
    
    import redis
    
    class Task:
        def __init__(self):
            self.rcon = redis.Redis(host = 'localhost', db = 5)
            self.ps = self.rcon.pubsub()
            self.ps.subscribe('task:pubsub:channel')
    
        def process_task(self):
            for i in self.ps.listen():
                if i['type'] == 'message':
                    print('Task: ', i['data'])
    
    Task().process_task()
    
    情不知所起一往而深
  • 相关阅读:
    docker 加速器配置目录
    php 超时设置笔记
    php socket通过smtp发送邮件(纯文本、HTML,多收件人,多抄送,多密送)
    fabric 安装
    centos7下使用yum安装pip
    【转】linux tar 压缩
    ASP.NET MVC 5 默认模板的JS和CSS 是怎么加载的?
    NHibernate with ASP.NET MVC 入门示例
    Ajax入门
    NHibernate入门
  • 原文地址:https://www.cnblogs.com/xingbiaoblog/p/9036747.html
Copyright © 2011-2022 走看看