浅析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通过正则查找微博@(at)用户的方法
Mar 13 Python
详解使用python crontab设置linux定时任务
Dec 08 Python
Python实现Kmeans聚类算法
Jun 10 Python
PyQt5每天必学之单行文本框
Apr 19 Python
Pycharm 创建 Django admin 用户名和密码的实例
May 30 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
Dec 10 Python
使用Python+wxpy 找出微信里把你删除的好友实例
Feb 21 Python
python的sorted用法详解
Jun 25 Python
python实现同一局域网下传输图片
Mar 20 Python
keras K.function获取某层的输出操作
Jun 29 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 Python
Python中threading库实现线程锁与释放锁
May 17 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
动态新闻发布的实现及其技巧
2006/10/09 PHP
php 文件夹删除、php清除缓存程序
2009/08/25 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
Vue封装全局过滤器Filters的步骤
2020/09/16 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
Python实现保证只能运行一个脚本实例
2015/06/24 Python
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
Python创建或生成列表的操作方法
2019/06/19 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
python super函数使用方法详解
2020/02/14 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
关于赌博的检讨书
2014/01/08 职场文书
成考报名单位证明范本
2014/01/16 职场文书
服装创业计划书范文
2014/02/05 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
上班迟到检讨书
2014/09/15 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
介绍信的格式
2015/01/30 职场文书
PyMongo 查询数据的实现
2021/06/28 Python
bat批处理之字符串操作的实现
2022/03/16 Python