B
B
Bayan Talasbekovs2020-04-27 11:15:57
Python
Bayan Talasbekovs, 2020-04-27 11:15:57

Why doesn't the code after if work?

Good afternoon! I am writing my first parser bot in Python. But after if the code doesn't work. If you divide the code into 2 parts: 'horoscope for the year' and 'horoscope for today' and run separately, then they work. I wanted to combine 2 codes. Can you please help! I would appreciate that.
comes out like this5ea6945f75fb5567393860.png

# -*- coding: utf8 -*-
    import telebot
    import requests
    from bs4 import BeautifulSoup
    from telebot import types
    bot = telebot.TeleBot(token='my token')
    URL = 'url'
    HEADERS = {
            'user_agent': 'bla bla bla'
        }
    response = requests.get(URL, headers=HEADERS)
    soup = BeautifulSoup(response.text, 'html.parser')
    horoscopes = soup.findAll('div', class_='horoscope_item floats_wrapper')
    word=''
    for i in horoscopes:
        word += i.find('div', class_ = 'text_box').text
    @bot.message_handler(commands=['start', 'help'])
    def main(message):
        bot.send_message(message.from_user.id,'Привет! Что ты хочешь узнать? Гороскоп на год или Гороскоп на сегодня?')
        if message.text.lower() == 'Гороскоп на год':
            bot.send_message(message.from_user.id, 'Какой у тебя гороскоп?Выбери:овен,телец,близнецы,рак,лев,дева,весы,скорпион,стрелец,козерог,водолей,рыбы')
            if message.text.lower() == "овен":
                bot.send_message(message.from_user.id,
                                 "Его союз с Белой Металлической Крысой даст")
            elif message.text.lower() == 'телец':
                bot.send_message(message.from_user.id,
                                 'Покровительница 2020 года – Белая Крыса –  ')
            elif message.text.lower() == 'близнецы':
                bot.send_message(message.from_user.id,
                                 'Все их душевные порывы, спонтанные ')
            elif message.text.lower() == 'рак':
                bot.send_message(message.from_user.id,
                                 'Хозяйка года – Белая Крыса, несмотря на всю ')
            elif message.text.lower() == 'лев':
                bot.send_message(message.from_user.id,
                                 'Будет и период высокого подъема, когда ')
            elif message.text.lower() == 'скорпион':
                bot.send_message(message.from_user.id,
                                 'Скорпионы – люди с яркой харизмой и высокой ')
            elif message.text.lower() == 'стрелец':
                bot.send_message(message.from_user.id,
                                 'Представителям этого знака зодиака, как ')
            elif message.text.lower() == 'козерог':
                bot.send_message(message.from_user.id,'Повелительница года не')
            elif message.text.lower() == 'водолей':
                bot.send_message(message.from_user.id,'Перед представителями ')
            elif message.text.lower() == 'рыбы':
                bot.send_message(message.from_user.id,'В новый 2020 год Рыбы ')
            else:
                bot.send_message(message.from_user.id, 'Я тебя не понимаю! Напиши повторно.')
            bot.polling(none_stop=True)
        elif message.text.lower() == 'Гороскоп на сегодня':
            bot.send_message(message.chat.id, 'Ваш гороскоп на сегодня:' + word)
    if __name__ == '__main__':
        bot.polling(none_stop=True)

Answer the question

In order to leave comments, you need to log in

1 answer(s)
B
BitNeBolt, 2020-04-27
@BitNeBolt

You translate it to lower case, and the condition contains a character from a large one. "Horoscope".

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question