Python while true实现爬虫定时任务


Posted in Python onJune 08, 2020

记得以前的windows 任务定时是可以的正常使用的,今天试了下,发现不能正常使用了,任务计划总是挂起。

接下来记录下python 爬虫定时任务的几种解决方法。

今天是第一篇,后面会陆续更新。

首先最容易的是while true死循环挂起,上代码

import osimport timeimport sysfrom datetime import datetime, timedelta
def One_Plan():
   # 设置启动周期
   Second_update_time = 24 * 60 * 60
   
  # 当前时间
  now_Time = datetime.now()
  # 设置 任务启动时间
  plan_Time = now_Time.replace(hour=9, minute=0, second=0, microsecond=0) 
  # 设置差值,-1 day, 21:48:53.246576,类似于这样
  # time.sleep()需要传入int,所以下面使用.total_seconds() 
  # 主要用来计算差值,返回int,具体功能可以自行查阅相关资料
  delta = plan_Time - now_Time
  first_plan_Time = delta.total_seconds() % Second_update_time
  print("距离第一次执行需要睡眠%d秒" % first_plan_Time)
  return first_plan_Time

# while Ture代码块,挂起程序,睡眠时间结束后调用函数名进行执行
while True:

  s1 = One_Plan()
  time.sleep(s1)
  # 下面这里是自己定义的函数,想跑代码的可以换成hellow world函数或者注释掉这行测试下
  exe_file(D_list)
  print("正在执行首次更新程序")

个人感觉使用这种方式进行定时计划的启动如果为单个程序,并且一天执行一次的话没什么问题,如果要考虑到一天执行多个任务并且一天需要执行多次,短板一下就凸显出来了,

在工作的情况中还需要考虑到很多因素,比如爬虫程序需要在晚上12点和早上6点,9点,下午3点执行四次,并且需要同时执行4个爬虫,还需要考虑到网络是否稳定,如果程序挂掉该怎么处理等等因素

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
分析python服务器拒绝服务攻击代码
Jan 16 Python
python生成指定长度的随机数密码
Jan 23 Python
Python中json格式数据的编码与解码方法详解
Jul 01 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
Aug 03 Python
Python爬虫番外篇之Cookie和Session详解
Dec 27 Python
python通过getopt模块如何获取执行的命令参数详解
Dec 29 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
Python发送邮件测试报告操作实例详解
Dec 08 Python
Python实现批量执行同目录下的py文件方法
Jan 11 Python
python requests抓取one推送文字和图片代码实例
Nov 04 Python
使用python将微信image下.dat文件解密为.png的方法
Nov 30 Python
python 实现rolling和apply函数的向下取值操作
Jun 08 #Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
Jun 08 #Python
Python实现查找数据库最接近的数据
Jun 08 #Python
python numpy库np.percentile用法说明
Jun 08 #Python
python thrift 实现 单端口多服务的过程
Jun 08 #Python
Python astype(np.float)函数使用方法解析
Jun 08 #Python
python opencv 实现读取、显示、写入图像的方法
Jun 08 #Python
You might like
PHP MSSQL 存储过程的方法
2008/12/24 PHP
php checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
Jquery事件的连接使用示例
2013/06/18 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
基于Jquery实现焦点图淡出淡入效果
2015/11/30 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
jsTree使用记录实例
2016/12/01 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
python查找指定具有相同内容文件的方法
2015/06/28 Python
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
python实现感知器算法(批处理)
2019/01/18 Python
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
运动会通讯稿100字
2014/01/31 职场文书
《学会合作》教学反思
2014/04/12 职场文书
赔偿协议书范本
2014/04/15 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
建筑管理专业求职信
2014/07/28 职场文书
活动总结范文
2014/08/30 职场文书
护士工作失误检讨书
2014/09/14 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
给领导的感谢信范文
2015/01/23 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js