Здравствуйте, ребят, помогите пожалуйста: учусь делать бота на Python. Есть кнопки - это разные города. Как при нажатии на эти кнопки (имеется код парсинга с сайта погоды по городам) чтоб пользователю выдавало погоду?
Код бота:
import telebot
from telebot import types
import requests
import random
from bs4 import BeautifulSoup as b
bot = telebot.TeleBot('токен')
@bot.message_handler(commands=['start'])
def send_welcome(message):
name = bot.get_me()
print(name)
bot.reply_to(message, f"Привет {message.from_user.first_name} !!!" \
f" С чего начнем? Для хорошего начала дня необходима информация о сегодняшнем дне. Нажми /menu")
@bot.message_handler(commands=['menu'])
def start(message):
a = types.InlineKeyboardMarkup()
a_weather = types.InlineKeyboardButton(text='\U0000270C Прогноз погоды в твоём городе на сегодня', callback_data='weather')
a_astrolog = types.InlineKeyboardButton(text='\U0001F52D Астрологический прогноз на сегодня', callback_data='astrolog')
a.add(a_weather, a_astrolog)
bot.send_message(message.chat.id, '\U0001F31E Выбери, что ты хочешь узнать:', reply_markup=a)
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
if call.data == 'weather':
a_weather = types.InlineKeyboardMarkup()
a_weather_1 = types.InlineKeyboardButton(text='Гомель', callback_data='gomel')
a_weather_2 = types.InlineKeyboardButton(text='Минск', callback_data='minsk')
a_weather_3 = types.InlineKeyboardButton(text='Витебск', callback_data='vitebsk')
a_weather_4 = types.InlineKeyboardButton(text='Гродно', callback_data='grodno')
a_weather_5 = types.InlineKeyboardButton(text='Могилёв', callback_data='mogilev')
a_weather_6 = types.InlineKeyboardButton(text='Брест', callback_data='brest')
a_weather.add(a_weather_1, a_weather_2, a_weather_3, a_weather_4, a_weather_5, a_weather_6)
bot.send_message(call.message.chat.id, text='Выбери областной центр', reply_markup=a_weather)
bot.polling(none_stop=True)
Код парсинга с сайта погоды (как его к кнопке города привязать, не понимаю....):
import requests
import bs4
weather_minsk = 'https://world-weather.ru/pogoda/belarus/minsk/'
r_minsk = requests.get(weather_minsk)
b_minsk = bs4.BeautifulSoup(r_minsk.text, 'html.parser')
result_minsk = b_minsk.select('span.dw-into')
for i in result_minsk:
text_result_minsk = i.getText()
if city == 'Минск':
print(f'Погода в Минске. {text_result_minsk}')
else:
print(f'Такого областного центра нет в Беларуси. Попробуйте еще раз!')
Если нет конкретных советов, помогите хотя бы с информацией, где прочитать... везде примеры именно просто парсинг (без кнопки в боте)..
Спасибо