实现定时任务

news2024/12/23 22:13:32

1 问题

 定时任务中,每天统计一下今日博客的各项数据,并以邮件的形式发送给自己。

2 方法

  1. .首先在某目录下新建任务文件 crontest.cron,用于存在定时任务语句。

  2. .相同目录新建 hello.py 文件,并且编辑这个文件写一句简单的 print('Hello World')。

编辑 crontest.cron 文件,修改为 5,10,15,20,25,30,35,40,45,50,55,59 * * * * python hello.py >> ~/1.txt开始执行定时任务 (注意crontest.cron 文件路径和自己的一致):

crontab ~/crontest.cron

36a1c36c6aaeae7b84770670f9ab6ef1.jpeg

代码清单 1

# -*- coding: UTF-8 -*-
from urllib.request import urlopen
from bs4 import BeautifulSoup
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import time
# 博客地址
url = 'https://blog.csdn.net/smileyan9'
html = urlopen(url)
soup = BeautifulSoup(html.read())
# 进一步缩小范围
sources = soup.select('.data-info')
soup = BeautifulSoup(str(sources))
dls = soup.find_all(['dl'])
notes = ['原创','周排名','总排名','访问','等级','积分','粉丝','获赞','评论','收藏']
common = ''
# 选择自己关注的数据以及顺序
keys = [6,3,5,8,7,9]
for key in keys:
   common += (notes[key]+':'+dls[key]['title']+" ")
date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(date,'->',common)
# 第三方 SMTP 服务
mail_host = 'smtp.exmail.qq.com'  #设置服务器
mail_user = "root@smileyan.cn"    #用户名
mail_pass="Your password"  
sender = 'root@smileyan.cn'
receivers = ['root@smileyan.cn']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
message = MIMEText(common, 'plain', 'utf-8')
message['From'] = Header("Python 脚本(by smileyan)", 'utf-8')
message['To'] =  Header("幸运儿", 'utf-8')
subject = date
message['Subject'] = Header(subject, 'utf-8')
try:
   smtpObj = smtplib.SMTP()
   smtpObj.connect(mail_host, 25)    # 25 为 SMTP 端口号
   smtpObj.login(mail_user,mail_pass)  
   smtpObj.sendmail(sender, receivers, message.as_string())
   print("邮件发送成功")
except smtplib.SMTPException:
   print("Error: 无法发送邮件")

3 结语

一切复杂的任务都应该从最简单的开始,在理解基本过程后,就可以开始定时运行python脚本了。在解决了上面的定时任务后,需要解决写代码了,代码同样非常简单相关数据,这里需要在这篇博客的基础上加一些自己的特殊功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/686541.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JUC进阶】05. 偏向锁

目录 1、前言 2、偏向锁 2.1、基本原理 2.2、使用场景 3、获取偏向锁 4、何时撤销 4.1、到达安全点 4.2、其他线程尝试竞争偏向锁 4.3、重新计算hashcode 5、小结 1、前言 偏向锁是Java并发编程中一种重要的锁机制,它针对特定的线程进行优化,…

项目集活动—项目集收尾阶段活动

项目集收尾阶段活动从项目集组件完成了所有输出的交付,且项目集开始交付预期效益。某些情况下,项目集治理可能决定在所有组件完成之前就提前执行项目集收尾。无论哪种情况,此阶段项目集活动的目标都是释放项目集资源,支持将剩余项…

区分BOM和DOM,区分window、document、html、body

https://blog.csdn.net/xswl134679/article/details/128795161 JavaScript三大组成部分 1. ECMAScript ECMAScript是JavaScript的语法标准,由ECMA(欧洲计算机厂家协会)制定的。 2. BOM BOM即浏览器对象模型(brower object mode…

Contrastive Learning in Image (CVPR 2023)

文章目录 1. Open Vocabulary Semantic Segmentation with Patch Aligned Contrastive Learning (图文匹配)1.目标2.任务类型3.解决思路4. 总结 2. MaskCLIP: Masked Self-Distillation Advances Contrastive Language-Image Pretraining (图…

数学模型在水环境评价、防洪评价、排污口论证、水质、水量、水生态、水动力等方面的应用

目录 专题一、一维水动力模型模拟一河道水流的应用 专题二、一维复杂河网模型构建及建筑物设置 专题三、一维水质模型在环境影响评价中的应用 专题四、平面二维水动力模型的构建河验证 专题五、平面二维水动力模型在防洪影响评价中的应用 专题六、平面二维水动力水质模型…

抖音kol投放模型怎么打造,营销策略规划

这是一个内容为王的时代,想要在小红书这种内容平台做好内容营销,一定要了解抖音kol投放模型怎么打造,营销策略规划。 一、如何进行kol投放 品牌想要完成一次高效而准确的完成kol投放模型,需要完整的品牌投放策略。针对于小红书平台…

如何驯化机器狗读懂人类手势,手把手教你!

作为全国普通高校大学生竞赛榜单内竞赛,“中国软件杯”大学生软件设计大赛-智能四足机器狗电力巡检系统开发赛项,目前已吸引了全国2041支队伍参加。经过激烈的目标检测与分割算法打榜赛,最终,有153支团队成功晋级区域赛。在即将于…

知乎财报预测:知乎2023年Q2收入将继续下滑,净亏损将扩大一倍

来源:猛兽财经 作者:猛兽财经 华尔街分析师对知乎2023年第二季度财报的预测 在5月24日发布第一季度业绩时,知乎(ZH)并未对2023年第二季度或2023财年全年提供任何具体的指引。但目前卖方分析师的一致财务预测表明&…

F-35飞控系统详解

基于非线性动态逆(NDI)的控制律 1. F-35飞控控制律 F-35采用了由三台冗余机载管理计算机(VMC,Vehicle Management Computers)中运行的非线性动态逆控制架构来提供电传飞行控制。F-35的控制律不仅能增强飞机动力学特性实现增稳,还…

java学习记录之JDBC2

1 JDBC回顾  Statement 语句执行者 Connection conn null; Statement st null; ResultSet rs null; try{ //1 通过工具类获得连接 conn JdbcUtils.getConnection(); //2 获得语句执行者 st conn.createStatement() --> 参数 结果集类型、并发参数 (滚动结…

如何在 Spring Boot 中使用定时任务

如何在 Spring Boot 中使用定时任务 引言 在实际的项目中,我们经常需要编写定时任务来执行一些周期性的任务,比如定时备份数据库、定时发送邮件等。在 Spring Boot 中,我们可以使用 Spring 的 Task Execution 和 Scheduling 来实现定时任务…

用BERT做命名实体识别任务

命名实体识别NER任务是NLP的一个常见任务, 它是Named Entity Recognization的简称。 简单地说,就是识别一个句子中的各种 名称实体。 诸如:人名,地名,机构 等。 例如对于下面这句话: 小明对小红说:"你…

佩戴舒适度的蓝牙耳机品牌有哪些?佩戴舒适性蓝牙耳机排行榜推荐

​对于年轻人来说,耳机使用场景丰富,时尚追求度高,喜好的音乐类型也是多种多样,需求侧重也不尽相同。下面我来推荐几款相当不错的蓝牙耳机给大家,总会有喜欢那款! 一、南卡OE PRO开放式耳机 南卡OE PRO是国…

带你阅读 Flutter Demo(flutter 保姆级入门教程)

dart、flutter Flutter Demo 解析 - 文章信息 - Author: Jack Lee (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChineAddress of this article:https://blog.csdn.net/qq_28550263/article/details/xxxxxx 【介绍】:本…

RFID技术的革新与应用:连接智能物联网的关键

在日益数字化的时代,物联网(IoT)技术正迅速发展,并为我们的生活带来了无数的便利。而射频识别(RFID)技术作为物联网的关键支撑之一,正在推动着智能化、自动化的进程。本文将深入探讨RFID技术的基…

INTERSPEECH 2023论文|基于自监督学习表示的具有持久性口音记忆的口音识别

论文题目: Self-supervised Learning Representation based Accent Recognition with Persistent Accent Memory 作者列表: 李睿,谢志伟,徐海华,彭亦周,刘和鑫,黄浩,Chng Eng Sio…

神州设备IPV6路由综合运用

实训拓扑图 一、基本配置: SW-1: SW-1>ena SW-1#conf SW-1(config)#vlan 10;100 SW-1(config)#int l1 SW-1(config-if-loopback1)#ip add 1.1.1.1 255.255.255.255 SW-1(config-if-loopback1)#ipv6 add 2001:1::1/128 SW-1(config-if-loopback1)#exit

前端系列18集-权限,nginx成功,屏幕分辨率,vue3

vue3.0 使用原生websocket通信 // Websoket连接成功事件const websocketonopen (res: any) > {console.log("WebSocket连接成功", res);};// Websoket接收消息事件const websocketonmessage (res: any) > {console.log("数据", res);};// Websoket…

【从零开始学习C++ | 第二十二篇】C++新增特性(下)

目录 前言: 类型推导: constexpr关键字: 初始化列表: 基于范围的for循环: 智能指针之unique ptr Lambda表达式: 总结: 前言: 本文我们将继续介绍 C 11 新增十大特性的剩余…

解决前端容器不能充满屏幕

解决前端容器不能充满屏幕 px、rpx、em、rem、vw、vh各种像素单位的区别 css3新单位vw、vh、vmin、vmax的使用详解 学习element-UI写管理系统的页面,发现当菜单栏都收缩起来,结果是这样的 红色框是容器里每个板块的布局,但是容器下面却有空白…