在爬虫常态化运行的今天,无人值守、故障秒级触达已经成为刚需。相比邮件告警的延迟、短信告警的成本,企业微信与钉钉凭借免费、即时、可 @成员、支持富文本展示等优势,成为爬虫监控告警的首选渠道。
本文将从监控场景、机器人配置、代码实现、最佳实践四个维度,手把手教你搭建一套可直接落地的爬虫告警体系。
一、为什么爬虫必须接入企微 / 钉钉告警
传统爬虫运维依赖人工盯日志、定时巡检,很容易出现故障发现不及时、数据漏采、服务器宕机等问题。接入 IM 告警后,能实现:
二、核心监控场景(覆盖爬虫全生命周期)
你可以在以下节点埋入告警逻辑,实现全流程守护:
- 启动 / 停止告警:爬虫意外退出、手动启停通知
- 异常捕获:请求失败、解析报错、数据库连接异常
- 反爬触发:403/521 状态码、验证码、IP 封禁
- 性能阈值:CPU / 内存过高、爬取速度骤降、超时无响应
- 数据质量:当日采集量为 0、字段缺失率超标
三、企业微信机器人配置 + 代码实现
1. 创建机器人(5 步搞定)
2. Python 告警代码(可直接复制)
python
运行
import requests
import json
import datetime
def send_wecom_alert(title, content, mentioned_list=None):
"""
企业微信爬虫告警函数
:param title: 告警标题
:param content: 告警详情
:param mentioned_list: @成员列表,["user1", "@all"]
"""
webhook = "替换为你的Webhook地址"
msg = {
"msgtype": "markdown",
"markdown": {
"content": f"## ⚠️ {title}\\n"
f"**发生时间**:{datetime.datetime.now()}\\n"
f"**异常信息**:{content}\\n"
f"**处理建议**:检查爬虫状态/网络/目标站点"
},
"mentioned_list": mentioned_list or []
}
resp = requests.post(webhook, json=msg)
return resp.json()
# 调用示例
if __name__ == '__main__':
send_wecom_alert("商品爬虫异常", "请求403,疑似IP被封禁", ["@all"])
四、钉钉机器人配置 + 代码实现
1. 创建机器人(注意安全设置)
2. Python 告警代码(带签名)
python
运行
import requests
import json
import time
import hmac
import hashlib
import base64
import urllib.parse
def send_ding_alert(title, content):
# 替换为你的配置
webhook = "你的钉钉Webhook"
secret = "你的加签密钥"
keyword = "告警" # 安全关键词
# 签名计算
timestamp = str(round(time.time() * 1000))
secret_enc = secret.encode("utf-8")
string_to_sign = "{}\\n{}".format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode("utf-8")
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
url = f"{webhook}×tamp={timestamp}&sign={sign}"
msg = {
"msgtype": "markdown",
"markdown": {
"title": f"{keyword}{title}",
"text": f"### ⚠️ {title}\\n"
f"**时间**:{time.ctime()}\\n"
f"**详情**:{content}\\n"
f"**@所有人**"
},
"at": {"isAtAll": True}
}
resp = requests.post(url, json=msg)
return resp.json()
# 调用
if __name__ == '__main__':
send_ding_alert("爬虫宕机告警", "核心数据爬虫已停止运行,请立即重启")
五、通用集成方案(适配所有爬虫框架)
无论你用Requests、Scrapy、Playwright、Selenium,都可以这样接入:
六、最佳实践(企业级稳定运行建议)
七、总结
爬虫监控的核心是早发现、快响应、少损失。企业微信与钉钉告警,用最低成本解决了最痛的运维问题。
按照本文代码,你可以在10 分钟内完成接入,让爬虫从 “黑盒运行” 变成 “透明可控”。



