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自带的“任务计划程序”,还是很好用的,创建基本任务就可以了。
pyinstaller,scrapy和apscheduler的更多相关文章
- python打包成可执行文件
1 最开始我直接把在Windows上打包的run.exe文件上传到Linux以为可以直接用了.但是./run后报错.百度后知道,Windows上的程序不能在Linux上运行 Linux下文件是否可执行 ...
- python3使用pyinstaller打包apscheduler出的错
本来只是想用Python做一个定时任务小工具在服务器上运行,可是服务器在隔离区,各种禁止上外网,使用pip导出列表那种下载库的方法不管用,导致Python的各种库都下不到,官网离线下载又各种缺依赖,好 ...
- Pyinstaller打包scrapy
环境 Windows7 Python3.65 scrapy1.74 PyInstaller3.5 创建打包脚本 在与scrapy.cfg同路径创建start.py # -*- coding: utf- ...
- 使用pyinstaller打包使用scrapy模块的程序运行时出现No such file or directory的问题解决
解决的方案是利用pyinstaller的hook特性,步骤如下: 1.在项目目录新建hooks目录,目录中新建hooks-scrapy.py 文件,文件内容如下: from PyInstaller.u ...
- 用apscheduler处理调度任务,定时任务,重复任务
from apscheduler.schedulers.blocking import BlockingScheduler from apscheduler.triggers.cron import ...
- APScheduler 浅析
前言 APScheduler是python下的任务调度框架,全程为Advanced Python Scheduler,是一款轻量级的Python任务调度框架.它允许你像Linux下的Crontab那样 ...
- APScheduler定时执行外加supervisor管理后台运行
最近写的天气爬虫想要让它在后台每天定时执行,一开始用的celery,但不知道为什么明明设置cron在某个时间运行,但任务却不间断的运行.无奈转用apscheduler,但是不管怎么设置都不能使得当调用 ...
- pyinstaller打包exe程序各种坑!!!
pyinstaller打包python成exe可执行程序,各种报错,各种坑,在次记录下 一.pyinstaller打包报错for real_module_name, six_moduleAttribu ...
- 真正的打包scrapy单文件(不包含cfg)
前置:https://www.cnblogs.com/luocodes/p/11827850.html 解决最后一个问题,如何将scrapy真正的打包成单文件 耗了一晚上时间,今天突然有灵感了 错误分 ...
随机推荐
- js中的数据类型、以及浅拷贝和深拷贝
一.js中的数据类型 1.基本类型(值类型):Undefined.Boolean.String.Number.Symbol 2.引用类型:函数.数组.对象.null.new Number(10)都是对 ...
- 基于Python的设计模式简述
结构梳理>>> 第一部分: 创建型模式 工厂模式 工厂方法 抽象工厂 建造者模式 原型模式 单例模式 第二部分: 结构型模式 适配器模式 修饰器模式 外观模式 享元模式 模型-视图- ...
- unity检测鼠标是点击在UI上还是物体上
void Update() { if (Input.GetMouseButtonDown(0)||(Input.touchCount >0 && Input.GetTouch(0 ...
- codeblock字体问题
有的时候在codeblock中打下划线,会显示空格, 这个时候可以修改一下字体 settings->editor->editor settings最上面的fonts框中选择choose,然 ...
- 进程、线程与GIL全局解释器锁详解
进程与线程的关系: . 线程是最小的调度单位 . 进程是最小的管理单元 . 一个进程必须至少一个线程 . 没有线程,进程也就不复存在 线程特点: 线程的并发是利用cpu上下文的切换(是并发,不是并行) ...
- 快速傅里叶变换(FFT)时间复杂度
图:信号在时域上和频域上的直观表示 1. 计算一维离散傅里叶变换(DFT)公式如下: 其中,N表示数据长度.由上式可知,DFT的时间复杂度是O(N*N) 2. 一维FFT的时间复杂度为O(N*logN ...
- The component and implementation of a basic gradient descent in python
in my impression, the gradient descent is for finding the independent variable that can get the mini ...
- 【Python】Elasticsearch和elasticsearch_dsl
官网:https://elasticsearch-py.readthedocs.io/en/master/api.html 官网:https://github.com/elastic/elastics ...
- Exce 快捷键 tips
1. 填充快捷键 ctrl+R 向下填充 CTRL+D 向右填充 2. 筛选快捷键 CTRL+SHIFT+L 3. 移动到当前区域的边缘: Ctrl + shift + 方向箭头 4. 字符连接:& ...
- 视频剪辑软件调研:Adobe Premiere、会声会影、抖音短视频
Adobe Premiere.会声会影.抖音短视频基本功能特点对比: 特点 Adobe Premiere 会声会影 抖音短视频 运行平台 Win7/Win8/Win10.macOS Win7/Win ...