zoukankan      html  css  js  c++  java
  • celery 调用scrapy

      我的环境: celery 3.1.25 python 3.6.9 window10

    celery tasks 代码如下,其中 QuotesSpider 是我的scrapy项目爬虫类名称

    from celery_app import app
    from scrapy.crawler import CrawlerProcess
    from scrapy.utils.project import get_project_settings
    from tutorial.spiders.quotes import QuotesSpider
    
    def crawl_run():
        scope = 'all'
        process = CrawlerProcess(settings=get_project_settings())
        process.crawl(QuotesSpider, scope)
        process.start()
        process.join()
    
    @app.task(queue='default')
    def execute_task():
        return crawl_run()


    后面发现这样写重复做定时任务的时候会报错,报reactor不能重启的问题,改成下面这样就解决了,这个类要放在和项目scrapy.cfg同级目录下
    
    
    from crawler.tutorial.crawler.tutorial.spiders.quotes import QuotesSpider
    from scrapy.utils.project import get_project_settings
    import scrapy.crawler as crawler
    from crochet import setup
    setup()
    import os
    
    class Scraper():
        def crawl_run(self):
            spider = QuotesSpider()
            settings = get_project_settings()
            runner = crawler.CrawlerRunner(settings)
            runner.crawl(spider, 'all')
            runner.join()
    
    
    if __name__ == '__main__':
        scraper = Scraper()
        scraper.crawl_run()
  • 相关阅读:
    React 生命周期
    css 多行文本以...代替
    微信JSSDK配置文件说明
    zepto阻止事件冒泡
    PHP 图片处理PNG颜色丢失
    React 学习笔记(一)
    webpack webpack-dev-server使用指南
    为什么需要使用模块打包工具?
    如何实现微信公户绑定公众号业务
    iOS 手势
  • 原文地址:https://www.cnblogs.com/WalkOnMars/p/11558560.html
Copyright © 2011-2022 走看看