浅析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 open读写文件实现脚本
Sep 06 Python
用Python脚本来删除指定容量以上的文件的教程
May 04 Python
举例讲解Python设计模式编程中的访问者与观察者模式
Jan 26 Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
Python内置函数—vars的具体使用方法
Dec 04 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
Python使用while循环花式打印乘法表
Jan 28 Python
使用python绘制二元函数图像的实例
Feb 12 Python
python实现windows倒计时锁屏功能
Jul 30 Python
Python hashlib模块加密过程解析
Nov 05 Python
tensorflow 限制显存大小的实现
Feb 03 Python
OpenCV图像变换之傅里叶变换的一些应用
Jul 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
destoon数据库表说明汇总
2014/07/15 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
javascript 精粹笔记
2010/05/09 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
javascript实现画板功能
2020/04/12 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
django连接mysql配置方法总结(推荐)
2018/08/18 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
python批量处理txt文件的实例代码
2020/01/13 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
全球高级音频和视频专家:HiDef Lifestyle
2019/08/02 全球购物
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
教师年度考核评语
2014/04/28 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
vue3获取当前路由地址
2022/02/18 Vue.js
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers