浅析python实现scrapy定时执行爬虫


Posted in Python onMarch 04, 2018

项目需要程序能够放在超算中心定时运行,于是针对scrapy写了一个定时爬虫的程序main.py ,直接放在scrapy的存储代码的目录中就能设定时间定时多次执行。

最简单的方法:直接使用Timer类

import time
import os
while True:
  os.system("scrapy crawl News")
  time.sleep(86400) #每隔一天运行一次 24*60*60=86400s或者,使用标准库的sched模块
import sched
#初始化sched模块的scheduler类
#第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。
schedule = sched.scheduler ( time.time, time.sleep )
#被周期性调度触发的函数
def func():
  os.system("scrapy crawl News")
def perform1(inc):
  schedule.enter(inc,0,perform1,(inc,))
  func()  # 需要周期执行的函数
def mymain():
  schedule.enter(0,0,perform1,(86400,))
if __name__=="__main__":
  mymain()
  schedule.run() # 开始运行,直到计划时间队列变成空为止关于cmd的实现方法,本人在单次执行爬虫程序时使用的是 
cmdline.execute("scrapy crawl News".split())但可能因为cmdline是scrapy模块中自带的,所以定时执行时只能执行一次就退出了。

小伙伴有种方法是使用

import subprocess
subprocess.Popen("scrapy crawl News")

她的程序运行正常可以定时多次执行,而我的却直接退出了,改为

from subprocess import Popen
subprocess.Popen("scrapy crawl News")

才正常,不知道为什么会这样,如果有大神可以解释原因还请指点。

反正

os.system、subprocess.Popen

都是pythoncmd的实现方法,可以根据需要选择使用。

总结

以上所述是小编给大家介绍的python实现scrapy定时执行爬虫,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
python中self原理实例分析
Apr 30 Python
Python面向对象特殊成员
Apr 24 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 Python
python使用selenium实现批量文件下载
Mar 11 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
Mar 20 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
python 如何区分return和yield
Sep 22 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
Oct 29 Python
Python常用外部指令执行代码实例
Nov 05 Python
python中remove函数的踩坑记录
Jan 04 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
Mar 04 #Python
Python爬虫框架Scrapy实例代码
Mar 04 #Python
详解python中asyncio模块
Mar 03 #Python
python3.6+django2.0开发一套学员管理系统
Mar 03 #Python
python爬虫面试宝典(常见问题)
Mar 02 #Python
Python基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 #Python
谈谈python中GUI的选择
Mar 01 #Python
You might like
php4的session功能评述(一)
2006/10/09 PHP
PHP 5.0对象模型深度探索之类的静态成员
2008/03/27 PHP
php正则表达式(regar expression)
2011/09/10 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
javascript 学习笔记(onchange等)
2010/11/14 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
python入门教程 python入门神图一张
2018/03/05 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
2020/11/17 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
房屋维修协议书范本
2014/09/25 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
改造DE1103三步曲
2022/04/07 无线电