使用 Python 实现每日新闻推送功能
本文详细阐述了利用 Python 脚本结合第三方 API 实现每日新闻自动推送至微信的方法。内容涵盖环境安全配置、HTTP 请求处理、数据解析及消息格式化,并深入讲解了如何通过 GitHub Actions 设置定时任务以实现无人值守的自动化运行。
1. 准备工作
在开始编写代码之前,需要确保开发环境已安装 Python 3.x 版本,并安装必要的依赖库 requests。
pip install requests
此外,你需要注册 Pushplus 账号以获取推送令牌(Token),这是接收消息的关键凭证。
2. 核心逻辑实现
2.1 导入所需库与配置环境变量
为了代码的安全性和可维护性,建议将敏感信息(如 Token)存储在环境变量中,而不是硬编码在代码里。
import os
import requests
# 从环境变量获取 Pushplus Token 和 Topic ID
pushplus_token = os.environ.get('PUSHPLUS_TOKEN')
topic = os.environ.get('TOPIC_ID')
# 基础检查:确保必要的环境变量已设置
if not pushplus_token:
raise ValueError("未找到 PUSHPLUS_TOKEN 环境变量")
安全提示:
- 在生产环境中,绝对不要将 Token 提交到代码仓库。
- 使用
.env文件配合python-dotenv库进行本地调试,但在部署时务必通过 CI/CD 工具注入环境变量。
2.2 调用新闻 API 接口
我们使用公开的免费新闻接口获取每日资讯。该接口支持返回文本或图文格式。
# 定义接口地址
image_url = "https://api.03c3.cn/api/zb" # 图片版本接口
text_url = "https://api.03c3.cn/api/zb?type=text" # 文字版本接口
try:
# 发送 GET 请求,设置超时时间防止阻塞
response = requests.get(text_url, timeout=10)
response.raise_for_status() # 检查 HTTP 状态码
content = response.text
except requests.exceptions.RequestException as e:
print(f"获取新闻失败:{e}")
content = "今日新闻获取失败,请稍后重试。"


