Привет, друзья! Сегодня мы погружаемся в интересный проект — создание Telegram-бота на Python, который будет парсить указанную вами веб-страницу на наличие ссылок и проверять их статус-коды. Этот бот станет отличным помощником для проверки работоспособности ссылок на вашем сайте.
⚙️ Что нам понадобится?
Для реализации нашего бота нам понадобятся следующие библиотеки:
1. python-telegram-bot — для создания и управления ботом.
2. requests — для выполнения HTTP-запросов.
3. BeautifulSoup — для парсинга HTML-кода.
Установим их с помощью pip:
pip install python-telegram-bot requests beautifulsoup4
📱 Настройка Telegram-бота
Для начала создадим бота с помощью BotFather в Telegram и получим токен. После этого создаем файл bot.py и начинаем настройку.
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import requests
from bs4 import BeautifulSoup
# Ваш токен, полученный от BotFather
TOKEN = 'ВАШ_ТОКЕН'
def start(update, context):
update.message.reply_text('Привет! Отправь мне ссылку, и я проверю все ссылки на этой странице.')
def check_links(update, context):
url = update.message.text
try:
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
links = [a['href'] for a in soup.find_all('a', href=True)]
results = []
for link in links:
try:
res = requests.head(link, allow_redirects=True)
results.append(f"{link} - {res.status_code}")
except requests.RequestException as e:
results.append(f"{link} - ошибка: {e}")
update.message.reply_text("\n".join(results))
except requests.RequestException as e:
update.message.reply_text(f"Не удалось загрузить страницу: {e}")
def main():
updater = Updater(TOKEN, use_context=True)
dp = updater.dispatcher
dp.add_handler(CommandHandler('start', start))
dp.add_handler(MessageHandler(Filters.text & ~Filters.command, check_links))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
📱 Разбор кода
1. Импортируем необходимые библиотеки: telegram.ext для работы с Telegram API, requests для HTTP-запросов и BeautifulSoup для парсинга HTML.
2. Создаем функцию "start ": Эта функция отправляет приветственное сообщение, когда пользователь запускает бота.
3. Создаем функцию "check_links ": Эта функция обрабатывает текстовые сообщения, проверяет ссылки на странице и отправляет результаты обратно в чат.
4. Функция "main ": Настраивает бота и запускает его.
⌛️ Запуск бота
Чтобы запустить бота, выполните команду:
python bot.py
Теперь вы можете отправить вашему боту ссылку на любую веб-страницу, и он вернет список всех найденных ссылок с их статус-кодами.