Задать вопрос
@gorg_frog123

Python telegram bot || Можете помочь с ботом, парсером?

в этом коде должет быть telegram bot, который парсит сайт для отображения актуальных скидок, но при нажатии на кнопку выбора региона ничего не происходит. Помогите пожалуйста пофиксить.

import requests
from bs4 import BeautifulSoup
import telebot
from telebot import types

bot = telebot.TeleBot("токен")

def get_discounts():
url = "https://mygamehunter.com/ps-store-tr/discount"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
discount_list = soup.find_all("div", class_="game-item")
discounts = []
for item in discount_list:
title = item.find("div", class_="game-title").text.strip()
discount = item.find("div", class_="game-discount").text.strip()
discounts.append(f"{title} - {discount}")
return "\n".join(discounts)

@bot.message_handler(commands=['start', 'help'])
def start(message):
if message.text == '/start':
bot.send_message(message.chat.id,"Привет! Это бот актуальных скидок. Для продолжения выбери страну.")

markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Турция")
item2 = types.KeyboardButton("Украина")
markup.add(item1, item2)

bot.send_message(message.chat.id, "Выбери страну:", reply_markup=markup)

@bot.message_handler(func=lambda message: True)
def handle_all_messages(message):
if message.text == "/start":
start(message)
elif message.text == "/discounts":
discounts = get_discounts()
bot.send_message(message.chat.id, discounts)
elif message.text == "Турция":
discounts = get_discounts()
bot.send_message(message.chat.id, f"Вы выбрали {message.text}, вот список актуальных скидок:\n{discounts}")
elif message.text == "Украина":
discounts = get_discounts()
bot.send_message(message.chat.id, f"Вы выбрали {message.text}, вот список актуальных скидок:\n{discounts}")
else:
bot.reply_to(message, "Я не понимаю, что вы говорите. Попробуйте снова или используйте /help.")

bot.polling()
  • Вопрос задан
  • 42 просмотра
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы