浅析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基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 Python
Python下rrdtool模块的基本使用方法
Nov 13 Python
python实现抖音视频批量下载
Jun 20 Python
实践Vim配置python开发环境
Jul 02 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
Feb 19 Python
Django web框架使用url path name详解
Apr 29 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
Aug 13 Python
pycharm设置当前工作目录的操作(working directory)
Feb 14 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
python import 上级目录的导入
Nov 03 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 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
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
php单例模式示例分享
2015/02/12 PHP
PHP的伪随机数与真随机数详解
2015/05/27 PHP
laravel学习教程之关联模型
2016/07/30 PHP
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
Python使用内置json模块解析json格式数据的方法
2017/07/20 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
python 实现任务管理清单案例
2020/04/25 Python
Python datetime 如何处理时区信息
2020/09/02 Python
澳洲的服装老品牌:SABA
2018/02/06 全球购物
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
大学生水文观测实习自我鉴定
2013/09/29 职场文书
劲霸男装广告词
2014/03/21 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
员工评语范文
2014/12/31 职场文书
公司搬迁通知
2015/04/20 职场文书
解析MySQL索引的作用
2022/03/03 MySQL
python开发人人对战的五子棋小游戏
2022/05/02 Python