Skip to content

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.pymain.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)

  1. 有一个 notifier.py 模块。
  2. 运行脚本,你的手机(飞书/钉钉)收到了消息。
  3. 人为制造一个异常,程序自动发送了报警信息。

Next Mission: L25. 编写文档:把你的作品卖出去

基于 Claude Code 构建