浅析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之通过Python连接数据库
Oct 28 Python
Python3搜索及替换文件中文本的方法
May 22 Python
举例讲解Python中的list列表数据结构用法
Mar 12 Python
开源软件包和环境管理系统Anaconda的安装使用
Sep 04 Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
python自动发微信监控报警
Sep 06 Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 Python
Tensorflow实现将标签变为one-hot形式
May 22 Python
PyCharm 2020.2 安装详细教程
Sep 25 Python
解决python3输入的坑——input()
Dec 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下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
TopList标签和JavaScript结合两例
2007/08/12 Javascript
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
2009/09/19 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
认识less和webstrom的less配置方法
2017/08/02 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
Python如何读取、写入JSON数据
2020/07/28 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
领导干部考核评语
2015/01/04 职场文书
社区母亲节活动总结
2015/02/10 职场文书
python中如何对多变量连续赋值
2021/06/03 Python