浅析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实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 Python
基于循环神经网络(RNN)的古诗生成器
Mar 26 Python
Python 对输入的数字进行排序的方法
Jun 23 Python
python3使用matplotlib绘制条形图
Mar 25 Python
创建Django项目图文实例详解
Jun 06 Python
python适合人工智能的理由和优势
Jun 28 Python
深入解析神经网络从原理到实现
Jul 26 Python
Python 操作 ElasticSearch的完整代码
Aug 04 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
python中树与树的表示知识点总结
Sep 14 Python
Pytorch 实现权重初始化
Dec 31 Python
python数字图像处理数据类型及颜色空间转换
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去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
python使用range函数计算一组数和的方法
2015/05/07 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
python属于解释语言吗
2020/06/11 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
工业自动化专业毕业生推荐信
2013/11/18 职场文书
创业计划书的主要内容有哪些
2014/01/29 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
吴仁宝观后感
2015/06/09 职场文书
简爱读书笔记
2015/06/26 职场文书
宝宝满月祝酒词
2015/08/10 职场文书