Docker - 青龙面板之自动运行Python脚本发送天气预报

2025-08-10 15:46:42 2点赞 3收藏 0评论

几个周末也都在忙,今天休息一下,想想写点什么好,写个脚本定时发送天气预报吧。

1. 准备工作

(1)需要从天气网站的 API 获取密钥。

(2)配置邮箱 SMTP 服务,准备登陆密码和SMTP服务器及端口号信息。

2. 脚本内容

见文章最后,注意替换备注中的内容为你自己的信息。

3. 青龙面板中的配置

(1)在青龙面板的脚本管理中添加脚本。

(2)设置定时任务

在青龙面板的定时任务中,创建任务,填写任务名称和所执行脚本,定时类型选择常规定时,定时规则为0 0 8 * * *,即每天早上8点执行。

创建完毕后,可以点击运行测试。

Docker - 青龙面板之自动运行Python脚本发送天气预报Docker - 青龙面板之自动运行Python脚本发送天气预报

下面是脚本具体内容:

import requests import datetime import smtplib from email.mime.text import MIMEText from email.header import Header def get_weather(city_code="101030100"): # 天津的城市代码 try: # 调用天气API api_key = "xxxxxxx" # 替换为你的API密钥 url = f"https://xxxxxx" response = requests.get(url) data = response.json() if "results" in data: weather = data["results"][0]["daily"][0] today = datetime.date.today().strftime("%Y年%m月%d日") info = f"天气:{weather['text_day']},{weather['low']}~{weather['high']}℃n" info += f"风力:{weather['wind_scale']}级n" return info else: return "获取天气失败,请检查城市代码或API密钥" except Exception as e: return f"发生错误:{e}" def send_email(content, sender_email, sender_password, receiver_email, smtp_server, smtp_port=587): """发送邮件函数""" # 创建邮件内容 message = MIMEText(content, 'plain', 'utf-8') message['From'] = Header(f"xxxxxxx", 'utf-8') message['To'] = Header(receiver_email, 'utf-8') today = datetime.date.today().strftime("%Y年%m月%d日") subject = f"天津天气提醒" message['Subject'] = Header(subject, 'utf-8') try: # 连接SMTP服务器并发送邮件 server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() # 启用TLS加密 server.login(sender_email, sender_password) server.sendmail(sender_email, receiver_email, message.as_string()) server.quit() return True, "邮件发送成功" except Exception as e: return False, f"邮件发送失败: {str(e)}" if __name__ == "__main__": # 获取天气信息 weather_info = get_weather() print(weather_info) # 邮件配置 - 请替换为你的信息 sender_email = "xxxxx@yeah.net" # 发送者邮箱 sender_password = "xxxxxx" # 邮箱密码或授权码 receiver_email = "xxxxxx@qq.com" # 接收者邮箱 # 邮箱服务器配置,以下是一些常见邮箱的配置 smtp_server = "smtp.yeah.net" # 根据你的邮箱修改 smtp_port = 25 # 发送邮件 success, msg = send_email(weather_info, sender_email, sender_password, receiver_email, smtp_server, smtp_port) print(msg)

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
3
扫一下,分享更方便,购买更轻松