zoukankan      html  css  js  c++  java
  • pyinstaller,scrapy和apscheduler

    一、scrapy拉起方式

    1. 简单cmd拉起

    from scrapy.cmdline import execute
    spiders = [
        'scrapy crawl liepin',
        'scrapy crawl lagou'
    ]
     
    if __name__ == '__main__':
        for i in spiders:
            execute(i.split())

    2. subprocess拉起

    subprocess.Popen('scrapy crawl aws_ec2_ondemand')

    3. 调用内部方法拉起

    process = CrawlerProcess(get_project_settings())
    
    process.crawl('aws_ec2_ondemand')
    
    process.start()
    from scrapy.commands import ScrapyCommand
    from scrapy.utils.project import get_project_settings
     
    class Command(ScrapyCommand):
        requires_project = True
     
        def run(self,args,opts):
            spiders_list = self.crawler_process.spiders.list()
            for name in spiders_list:
                self.crawler_process.crawl(name,**opts.__dict__)
     
            self.crawler_process.start()

    二、apschedular总结

    1. 基于Quartz,有四个组成部分:trigger,job,scheduler,executer

    2. cron表达式

    3. 常用的调度器

    • BlockingScheduler:仅可用在当前你的进程之内,与当前的进行共享计算资源
    • BackgroundScheduler: 在后台运行调度,不影响当前的系统计算运行
    • AsyncIOScheduler: 如果当前系统中使用了async module,则需要使用异步的调度器
    • GeventScheduler: 如果使用了gevent,则需要使用该调度
    • TornadoScheduler: 如果使用了Tornado, 则使用当前的调度器
    • TwistedScheduler:Twister应用的调度器
    • QtScheduler: Qt的调度器

     4. python内置的可实现定时任务的模块:timer和sche

    三、遇到的问题

    1. 如果用scheduler调度爬虫,拉起scrapy的方式只能用subprocess, 否则会报错“signal只能在主进程使用”。

    2. 用pyinstaller打包程序,想要在没有安装环境的windows运行的话,拉起scrapy只能用内部方法拉起,因为

    用命令拉起的话,这些命令只有安装了环境才能用。包括subprocess也是只能调用命令拉起,所以也不能用。

    3. 综合1、2点,那么如果用pyinstyaller打包程序,就不能用scheduler定时任务了。

    4. 最终决定将定时任务的功能交给windows自带的“任务计划程序”,还是很好用的,创建基本任务就可以了。

  • 相关阅读:
    连接sql sever2008数据库出现了无法连接到数据库引擎问题解决
    关于ssh的一些问题
    23.Xcode中常用的快捷键操作
    22.上传app一些相关问题
    20.cocoapods的安装和使用
    19. UIAlertController 提示框获取文本内容,打印控制台上
    18.safari 安装后flash还是提示安装 flash,视频不能播放
    17.iOS App设置icon,启动图,App名称的方法
    16.iOS APP图标和启动画面尺寸
    15.Xcode8 升级遇到的问题
  • 原文地址:https://www.cnblogs.com/jdbc2nju/p/9563761.html
Copyright © 2011-2022 走看看