浅析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使用cookielib库示例分享
Mar 03 Python
Python中比较特别的除法运算和幂运算介绍
Apr 05 Python
Python 基础之字符串string详解及实例
Apr 01 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
pygame游戏之旅 python和pygame安装教程
Nov 20 Python
详解用python写一个抽奖程序
May 10 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
Aug 29 Python
Python实现名片管理系统
Feb 14 Python
Python打印特殊符号及对应编码解析
May 07 Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 Python
python如何利用cv2模块读取显示保存图片
Jun 04 Python
Python上下文管理器Content Manager
Jun 26 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
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
PHP自定义多进制的方法
2016/11/03 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
Add Formatted Text to a Word Document
2007/06/15 Javascript
js 获取服务器控件值的代码
2010/03/05 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
python sqlite的Row对象操作示例
2019/09/11 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
有机童装:Toby Tiger
2018/05/23 全球购物
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
酒店办公室文员岗位职责
2013/12/18 职场文书
初中体育教学反思
2014/01/14 职场文书
庆七一活动方案
2014/01/25 职场文书
保安队长职务说明书
2014/02/23 职场文书
联谊会主持词
2014/03/26 职场文书
小学生暑假家长评语
2014/04/17 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
西柏坡观后感
2015/06/08 职场文书