用 Python 和 Telegram Bot API 构建免费网站可用性监控机器人,支持即时告警通知。
简而言之:你可以构建一个 Telegram bot,自动检查网站的在线状态,并在网站宕机时立即通知你——只需要使用 Python,了解一点 Telegram Bot API,而且完全免费。
说实话,网站能否持续在线至关重要。网站宕机可能意味着收入损失、声誉受损,以及用户体验受挫。传统的网站在线监控服务固然很好,但通常需要支付订阅费用。如果能直接在 Telegram 应用中收到简单、即时的通知,会怎么样?这正是我们接下来要构建的东西。
这里的核心思路就是简单的自动化。我们会使用 Python 定期检查网站状态;如果网站宕机,就向 Telegram bot 发送一条消息。这样就不需要持续手动检查,既节省时间,也能确保你第一时间收到警报。
下面是 Python 代码大致的写法(为清晰起见,进行了简化):
import requests
import telegram
import time
Replace with your Telegram bot token and website URL
BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN"
CHAT_ID = "YOUR_TELEGRAM_CHAT_ID"
WEBSITE_URL = "https://www.example.com"
def check_website(url):
try:
response = requests.get(url, timeout=5)
response.raise_for_status() Raise HTTPError for bad responses (4xx or 5xx)
return True
except requests.exceptions.RequestException as e:
print(f"Website unavailable: {e}")
return False
def send_telegram_message(message):
bot = telegram.Bot(token=BOT_TOKEN)
bot.send_message(chat_id=CHAT_ID, text=message)
if name == "main":
while True:
if not check_website(WEBSITE_URL):
message = f"⚠️ Website {WEBSITE_URL} is DOWN!"
send_telegram_message(message)
print(message)
else:
print(f"Website {WEBSITE_URL} is UP!")
time.sleep(60) Check every 60 seconds
requests 轻松发送 HTTP 请求在 Python 中发送 HTTP 请求时,requests 库是你最得力的帮手。它使用起来非常简单,还替你处理了许多复杂细节。如果你对它还不熟悉,可以查看文档:https://requests.readthedocs.io/en/latest/
为了实现更健壮的错误处理,可以考虑在 requests.exceptions.RequestException 之外,增加更具体的异常处理逻辑。你可能还需要针对特定的 HTTP 状态码采用不同的处理方式,例如 404 Not Found。
构建这个 Telegram bot,是主动监控网站健康状况的一种绝佳方式。只需投入一点时间,就能避免日后遇到许多麻烦。本教程提供了一个可靠的基础,你可以在此之上自由扩展,加入更复杂的监控功能、日志记录和警报机制。
需要复杂自动化项目或网站性能优化方面的帮助吗?我专注于帮助企业简化运营流程。你可以在 https://itelnetconsulting.com/ 进一步了解我的服务。
Itelnet Consulting
替换为你的 Telegram bot token 和网站 URL
BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN"
CHAT_ID = "YOUR_TELEGRAM_CHAT_ID"
WEBSITE_URL = "https://www.example.com"
def check_website(url):
response = requests.get(url, timeout=5)
response.raise_for_status() Raise HTTPError for bad responses (4xx or 5xx)
except requests.exceptions.RequestException as e:
print(f"Website unavailable: {e}")
def send_telegram_message(message):
bot = telegram.Bot(token=BOT_TOKEN)
bot.send_message(chat_id=CHAT_ID, text=message)
if not check_website(WEBSITE_URL):
message = f"⚠️ Website {WEBSITE_URL} is DOWN!"
send_telegram_message(message)
print(f"Website {WEBSITE_URL} is UP!")
time.sleep(60) Check every 60 seconds
requests 轻松发送 HTTP 请求在 Python 中发送 HTTP 请求时,requests 库是你最得力的帮手。它使用起来非常简单,还替你处理了许多复杂细节。如果你对它还不熟悉,可以查看文档:https://requests.readthedocs.io/en/latest/
为了实现更健壮的错误处理,可以考虑在 requests.exceptions.RequestException 之外,增加更具体的异常处理逻辑。你可能还需要针对特定的 HTTP 状态码采用不同的处理方式,例如 404 Not Found。
构建这个 Telegram bot,是主动监控网站健康状况的一种绝佳方式。只需投入一点时间,就能避免日后遇到许多麻烦。本教程提供了一个可靠的基础,你可以在此之上自由扩展,加入更复杂的监控功能、日志记录和警报机制。
需要复杂自动化项目或网站性能优化方面的帮助吗?我专注于帮助企业简化运营流程。你可以在 https://itelnetconsulting.com/ 进一步了解我的服务。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。