浅析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 相关文章推荐
以windows service方式运行Python程序的方法
Jun 03 Python
使用Python的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
python中subprocess批量执行linux命令
Apr 27 Python
Python实现的多进程和多线程功能示例
May 29 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
想学python 这5本书籍你必看!
Dec 11 Python
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
python实现BP神经网络回归预测模型
Aug 09 Python
浅谈Django+Gunicorn+Nginx部署之路
Sep 11 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
Jun 29 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
3
2006/10/09 PHP
PHP错误和异长常处理总结
2014/03/06 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
Django logging配置及使用详解
2019/07/23 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
python带参数打包exe及调用方式
2019/12/21 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
中文专业毕业生自荐书范文
2014/01/04 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
生日寄语大全
2014/04/08 职场文书
我的中国梦口号
2014/06/16 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
公司职员入党自传书
2015/06/26 职场文书
2016国培研修心得体会
2016/01/08 职场文书
初中政治教学反思
2016/02/23 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL