Ребят, может кто подскажет в чем дело при работе кода в телеге
При первом выполнении любой команды все работает правильно, если же после нее запросить вторую команду, все равно работает условие первой и choice хранит значение первого запроса при переходе во второй def. При втором запросе не удается изменить значение choice во втором def с title на brand и наоборот
При первом выполнении любой команды все работает правильно, если же после нее запросить вторую команду, все равно работает условие первой и choice хранит значение первого запроса при переходе во второй def. При втором запросе не удается изменить значение choice во втором def с title на brand и наоборот
Python:
import telebot
import config
import requests
from bs4 import BeautifulSoup
import re
bot = telebot.TeleBot(config.token) # Передаём токен из файла config.py
@bot.message_handler(commands=['start']) # Запускаем бот
def welcome_start(message):
bot.send_message(message.chat.id, 'Приветствую! Команда /help поможет вам ')
@bot.message_handler(commands=['help']) # Выводим список команд
def help(message):
bot.send_message(message.chat.id, 'Выберите один из двух вариантов: /get_brand(если вы хотите узнать брэнд товара), либо /get_title(если вы хотите узнать название товара')
@bot.message_handler(commands=['get_title', 'get_brand']) # Запрашиваем артикул товара
def get_brand(message):
choice = message.text
print(choice)
bot.send_message(message.chat.id, 'Введите артикул товара')
@bot.message_handler(content_types='text') # Выводим запрошенное
def show_title(message):
article = message.text
print(choice)
url = 'https://www.wildberries.ru/catalog/' + str(article) + '/detail.aspx?targetUrl=XS'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
quotes = soup.find_all(itemprop="name")
title = re.findall(r'"([^"]*)"', str(quotes))
name = ''.join(title[0])
span_list = []
for quote in quotes:
span_list.append(quote.text)
brand = (span_list[-1])
if choice == '/get_title':
bot.send_message(message.chat.id, 'Название данного товара: ' + name)
elif choice == '/get_brand':
bot.send_message(message.chat.id, 'Бренд данного товара: ' + brand)
bot.polling() # запускаем бота