zoukankan      html  css  js  c++  java
  • 数据采集: 让scrapy-redis的start_urls支持优先级

    scrapy-redis默认只支持redis中listset数据结构, 但是当面对的业务多了后需要考虑到爬虫任务优先级的问题. 比如目前有3个业务线同时需要用一个爬虫, 3个业务线的重要程度不一样, 那么有以下几种方案:

    • 开3个spider(不建议)
    • 加入调度器进行优先级调度(加入了复杂度)
    • scrapy-redisstart_urls支持优先级

    当时也是面临这个问题, 采用的是加入了一层调度器来运行, 后来抽时间给scrapy-redis提供了支持start_urls优先级的feature, 通过在settings.py中设置参数就可以支持了, 测试也已经通过, 可能项目作者太忙了, 没有给这个PR反馈.

    项目地址

    https://github.com/qshine/scrapy-redis

    使用方法

    git clone https://github.com/qshine/scrapy-redis.git
    cd scrapy-redis
    python setup.py install
    

    settings.py中设置该参数, 其它参数可以参考README

    # settings.py
    ......
    
    REDIS_URL = 'redis://:@127.0.0.1:6379'
    REDIS_START_URLS_KEY = '%(name)s:start_urls'
    REDIS_START_URLS_AS_ZSET = True
    
    ......
    

    测试spider如下

    # -*- coding: utf-8 -*-
    
    from scrapy_redis.spiders import RedisSpider
    
    
    class MysiteSpider(RedisSpider):
        name = 'mysite'
    
        def parse(self, response):
            print(response.url)
    
    
    

    redis中添加3个优先级不同的任务

    zadd mysite:start_urls 0 http://www.baidu.com 10 http://www.sina.com 5 http://www.163.com
    

    启动spider, 日志如下

    http://www.sina.com
    2019-07-03 23:54:34 [mysite] DEBUG: Request not made from data: b'http://www.sina.com'
    http://www.163.com
    2019-07-03 23:54:34 [mysite] DEBUG: Request not made from data: b'http://www.163.com'
    http://www.baidu.com
    2019-07-03 23:54:34 [mysite] DEBUG: Request not made from data: b'http://www.baidu.com'
    

    结语

    这个feature是最近解决优先级提交的, 个人认为是一个比较实用的功能. 如果有不足欢迎大家交流, 如果能帮你快速实现需求, 也欢迎点击star.

  • 相关阅读:
    递归函数及Java范例
    笔记本的硬盘坏了
    “References to generic type List should be parameterized”
    配置管理软件(configuration management software)介绍
    WinCE文件目录定制及内存调整
    使用Silverlight for Embedded开发绚丽的界面(3)
    wince国际化语言支持
    Eclipse IDE for Java EE Developers 与Eclipse Classic 区别
    WinCE Heartbeat Message的实现
    使用Silverlight for Embedded开发绚丽的界面(2)
  • 原文地址:https://www.cnblogs.com/zlone/p/11129953.html
Copyright © 2011-2022 走看看