浅析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库安装包下载地址与安装过程详细介绍(Windows版)
Nov 02 Python
Python使用微信SDK实现的微信支付功能示例
Jun 30 Python
python 编码规范整理
May 05 Python
Python读写docx文件的方法
May 08 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
使用python代码进行身份证号校验的实现示例
Nov 21 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
Python带参数的装饰器运行原理解析
Jun 09 Python
全网最详细的PyCharm+Anaconda的安装过程图解
Jan 25 Python
Python实现给PDF添加水印的方法
Jan 25 Python
pandas 按日期范围筛选数据的实现
Feb 20 Python
python中subplot大小的设置步骤
Jun 28 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
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
php汉字转拼音的示例
2014/02/27 PHP
Laravel5中contracts详解
2015/03/02 PHP
php控制文件下载速度的方法
2015/03/24 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
PHP简单遍历对象示例
2016/09/28 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
js脚本学习 比较实用的基础
2006/09/07 Javascript
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
js绘制购物车抛物线动画
2020/11/18 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
Python函数嵌套实例
2014/09/23 Python
python二分查找算法的递归实现方法
2016/05/12 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
python如何支持并发方法详解
2020/07/25 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
编码实现字符串转整型的函数
2012/06/02 面试题
成人毕业生自我鉴定
2013/10/18 职场文书
十八大报告观后感
2014/01/28 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
总经理助理工作职责
2014/02/06 职场文书
销售顾问岗位职责
2014/02/25 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
今日说法观后感
2015/06/08 职场文书