浅析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获取android设备的GPS信息脚本分享
Mar 06 Python
Python 中的Selenium异常处理实例代码
May 03 Python
pytorch中tensor的合并与截取方法
Jul 26 Python
详解python读取image
Apr 03 Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 Python
python实现的登录与提交表单数据功能示例
Sep 25 Python
python定时任务 sched模块用法实例
Nov 04 Python
Python性能分析工具py-spy原理用法解析
Jul 27 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 Python
基于 Python 实践感知器分类算法
Jan 07 Python
Python基础之pandas数据合并
Apr 27 Python
Python音乐爬虫完美绕过反爬
Aug 30 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 while循环控制的简单实例
2016/05/30 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
utf8的编码算法 转载
2006/12/27 Javascript
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
JavaScript实现简单的星星评分效果
2017/05/18 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
Vue render函数实战之实现tabs选项卡组件
2019/04/22 Javascript
p5.js绘制旋转的正方形
2019/10/23 Javascript
js实现录音上传功能
2019/11/22 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
2020/08/14 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
详解Python中break语句的用法
2015/05/14 Python
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
简单谈谈python中的多进程
2016/11/06 Python
python内存动态分配过程详解
2019/07/15 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
python中if嵌套命令实例讲解
2021/02/25 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
作风建设演讲稿
2014/05/23 职场文书
工程承包协议书范本
2014/09/29 职场文书
出差报告怎么写
2014/11/06 职场文书
幼儿园开学报名通知
2015/07/16 职场文书
2015初中团委工作总结
2015/07/28 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python