You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python脚本获取的状态结果发送至Discord Webhook?

如何通过Discord Webhook发送爬取到的Contabo状态结果

要把你爬取到的status和status2结果发送到Discord,核心是通过POST请求向Discord Webhook URL发送JSON格式的消息 payload。以下是具体实现步骤:

1. 获取Discord Webhook URL

在Discord服务器中创建一个Webhook:

  • 打开服务器设置 → 选择「集成」→ 点击「Webhooks」→ 新建Webhook
  • 设置Webhook的名称、发送频道,然后复制生成的Webhook URL(格式类似https://discord.com/api/webhooks/[ID]/[TOKEN])

2. 安装依赖库

Discord Webhook需要用requests库发送HTTP请求,先安装:

pip install requests

3. 修改你的爬取脚本

在现有爬取逻辑后添加发送消息的代码,以下是完整示例(假设你已经完成爬取并得到status和status2变量):

import requests
from datetime import datetime

# --- 你的爬取代码开始 ---
# 这里替换成你实际的爬取逻辑,最终得到status和status2的值
status = "所有服务正常运行"
status2 = "存储节点性能优化中"
# --- 你的爬取代码结束 ---

# 替换为你自己的Discord Webhook URL
WEBHOOK_URL = "https://discord.com/api/webhooks/你的ID/你的TOKEN"

# 构造美观的Embed消息(Discord支持的富文本格式)
payload = {
    "embeds": [
        {
            "title": "Contabo 状态更新",
            # 根据主状态动态设置颜色:正常为绿色(0x00ff00),异常为红色(0xff0000)
            "color": 0x00ff00 if "正常" in status else 0xff0000,
            "fields": [
                {
                    "name": "主服务状态",
                    "value": status,
                    "inline": True
                },
                {
                    "name": "次要服务状态",
                    "value": status2,
                    "inline": True
                }
            ],
            # 添加当前UTC时间戳
            "timestamp": datetime.utcnow().isoformat() + "Z",
            "footer": {
                "text": "Contabo状态监控脚本"
            }
        }
    ]
}

# 发送请求到Discord Webhook
try:
    response = requests.post(WEBHOOK_URL, json=payload, timeout=10)
    # Discord返回200或204表示成功
    if response.status_code in (200, 204):
        print("状态消息已成功发送到Discord")
    else:
        print(f"发送失败,状态码: {response.status_code},响应: {response.text}")
except requests.exceptions.RequestException as e:
    print(f"网络请求出错: {str(e)}")

可选:简化消息格式

如果不需要富文本Embed,也可以用纯文本消息:

payload = {
    "content": f"📊 Contabo状态更新\n主服务状态: {status}\n次要服务状态: {status2}"
}

注意事项

  • 不要把Webhook URL硬编码到公开代码中,建议用环境变量存储(比如os.getenv("DISCORD_WEBHOOK_URL"))
  • 可以添加异常处理逻辑,避免爬取失败时导致消息发送中断
  • 如果状态内容包含特殊字符,确保已做转义处理(Discord会自动处理大部分常规字符)

内容的提问来源于stack exchange,提问作者eduu.vc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 07:45:51