浅析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中的包和模块实例
Nov 22 Python
python使用点操作符访问字典(dict)数据的方法
Mar 16 Python
python中dir函数用法分析
Apr 17 Python
numpy.random.seed()的使用实例解析
Feb 03 Python
Django自定义用户认证示例详解
Mar 14 Python
Python 实现中值滤波、均值滤波的方法
Jan 09 Python
python环境路径配置以及命令行运行脚本
Apr 02 Python
详解Python 解压缩文件
Apr 09 Python
python爬虫之遍历单个域名
Nov 20 Python
python Paramiko使用示例
Sep 21 Python
python 读取串口数据的示例
Nov 09 Python
matplotlib制作雷达图报错ValueError的实现
Jan 05 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 fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
php测试kafka项目示例
2020/02/06 PHP
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
js函数排序的实例代码
2013/07/01 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
AngularJS基础知识
2014/12/21 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
Python学习之asyncore模块用法实例教程
2014/09/29 Python
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
Python常见数据类型转换操作示例
2019/05/08 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
python字典key不能是可以是啥类型
2020/08/04 Python
如何在pycharm中安装第三方包
2020/10/27 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
速比涛英国官网:Speedo英国
2019/07/15 全球购物
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
写自荐信有哪些不宜?
2013/10/17 职场文书
员工离职证明范本
2015/06/12 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
vue2实现provide inject传递响应式
2021/05/21 Vue.js