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

Почему не выводится надпись при команде /start?

Никак не пойму, почему при вводе команды /start не появляется текст, который прописан для бота. Ошибок при этом никаких не выдаёт.

602ba2b45b9b6245069874.png

Мой код:
from bs4 import BeautifulSoup
import requests
import telebot

bot = telebot.TeleBot('token')
url = 'https://ria.ru/'   #Берём адрес страницы
page = requests.get(url)
new_news = []               #Создаём переменную из которой будем брать информацию
soup = BeautifulSoup(page.text, "html.parser") #Добавляем парсер
news = soup.findAll('a', class_='cell__title-text-valign') #Указываем конкретные теги
for i in range(len(news)):      #Создаём цикл
    if news[i].find('span', class_='cell-list__list') is not None:
        new_news.append(news[i].text)

for i in range(len(new_news)):

    @bot.message_handler(commands=['start'])
    def start_message(message):
        bot.send_message(message.chat.id, 'Привет, ты написал мне /start')

    @bot.message_handler(content_types=['text'])
    def send_text(message):
        if message.text == 'Новости':
            bot.send_message(message.chat.id, ''.join(new_news[:5]))
        elif message.text == 'News':
            bot.send_message(message.chat.id, ''.join(new_news[:5]))

bot.polling()
  • Вопрос задан
  • 178 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 2
HemulGM
@HemulGM Куратор тега Python
Delphi Developer, сис. админ
Слышал когда-нибудь о таком слове "отладка"?

И вообще, что ты тут понаписал?
Сначала у тебя собираются новости (1 раз за запуск). Потом ты их складываешь в массив, а потом ты запускаешь массив, в котором, кхм, определяешь два метода... Что? Зачем? А главное, как? Ну а потом стартуешь лонгпул
Ответ написан
@RqL
Возможно у вас for не начинает работу, попробуйте на каждом шаге поставить print(), это поможет понять где ошибка
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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