浅析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实现定制交互式命令行的方法
Jul 03 Python
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
matplotlib简介,安装和简单实例代码
Dec 26 Python
对dataframe数据之间求补集的实例详解
Jan 30 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
python批量读取文件名并写入txt文件中
Sep 05 Python
python与mysql数据库交互的实现
Jan 06 Python
python判断链表是否有环的实例代码
Jan 31 Python
django 实现手动存储文件到model的FileField
Mar 30 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
UI自动化定位常用实现方法代码示例
Oct 27 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
Apr 20 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查看当前Session的ID实例
2015/03/16 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
Vue 实现一个命令式弹窗组件功能
2019/09/25 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
python各种语言间时间的转化实现代码
2016/03/23 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
对python条件表达式的四种实现方法小结
2019/01/30 Python
Python基于requests库爬取网站信息
2020/03/02 Python
Python configparser模块常用方法解析
2020/05/22 Python
python 从list中随机取值的方法
2020/11/16 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
教师实习自我鉴定
2013/12/13 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server