L24. 自动化集成:让消息飞一会
Vibe Coding 宣言:能让机器人干的事,绝对不要让人工干。
0. 为什么这一课至关重要? (Why It Matters)
- 被动监控:你不可能 24 小时盯着屏幕看数据。让数据来找你。
- 及时止损:如果程序半夜挂了,你是想第二天早上发现数据全丢了,还是想立刻收到报警?
- Webhook:这是互联网世界的任意门。学会用 Webhook,你可以把任何两个系统连起来。
1. 目标 (Goal)
学会使用 Webhook 向 飞书/钉钉/企业微信 或 邮件 发送通知。
2. 核心概念/装备/指令 (The Core)
2.1 Webhook (The Trigger)
一个 URL。你往这个 URL 发一个 POST 请求,对方就会收到消息。
- Payload: 发过去的数据(比如
{ "text": "报警了!" })。
2.2 机器人 (The Bot)
- 飞书机器人: 在群设置里添加“自定义机器人”,拿到 Webhook 地址。
- 钉钉机器人: 同上。需要设置安全关键词。
3. 实战演练 (Action)
Step 1: 获取 Webhook URL
去你的飞书/钉钉群,添加机器人,复制 Webhook 地址。
Step 2: 编写发送脚本
让 Claude 写一个 notifier.py:
python
import requests
import json
def send_lark(webhook_url, content):
headers = {'Content-Type': 'application/json'}
data = {
"msg_type": "text",
"content": {"text": content}
}
requests.post(webhook_url, headers=headers, data=json.dumps(data))
# 测试
webhook = "https://open.feishu.cn/open-apis/bot/v2/hook/xxx"
send_lark(webhook, "Vibe Coding 报警测试!")Step 3: 集成到异常处理
修改之前的 logger.py 或 main.py,在 except 块里调用发送函数。
python
try:
# 核心业务
run_crawler()
except Exception as e:
logger.error(f"Crash: {e}")
send_lark(webhook, f"🚨 紧急报警:爬虫挂了!\n错误信息:{e}")4. 常见问题 (FAQ - Vibe Style)
Q: 消息发不出去? A: 检查安全设置。 钉钉机器人通常要求消息里必须包含特定的关键词(比如“报警”)。
Q: 发得太频繁被封了? A: 限流。 在代码里加个计时器,比如“每小时最多发一条报警”。别把自己的手机炸了。
Q: 能发图片吗? A: 能,但麻烦。 要先上传图片拿到 key。新手先发文字就行。
5. 验收标准 (Definition of Done)
- 有一个
notifier.py模块。 - 运行脚本,你的手机(飞书/钉钉)收到了消息。
- 人为制造一个异常,程序自动发送了报警信息。
Next Mission: L25. 编写文档:把你的作品卖出去