@DenDuatlov

Ошибка парсера на python. IndexError: list index out of range. как исправить?

import requests
from bs4 import BeautifulSoup as BS
import telebot


zodiacs = {"Козерог": {"unicode": 9809, "latin": "Capricon"} }


def get_horoscope(zodiac, URL='https://horoscopes.rambler.ru'):
    ASKURL = f'{URL}/{zodiac.lower()}/'
    HEADERS = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.0; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0'}
    response = requests.get(ASKURL, headers=HEADERS)
    soup = BS(response.content, 'html.parser')
    item = soup.findAll('div', class_='_1E4Zo _3BLIa')[0]
    parse_result = item.find('p', class_='mtZOt').get_text(strip=True)
    return parse_result


def get_info(zodiac):
    ask_horo = zodiacs[zodiac].get('latin')
    uni_horo = chr(zodiacs[zodiac].get('unicode'))
    result_horo = get_horoscope(ask_horo)
    return f'Результаты для знака зодиака {zodiac}- {ask_horo} - {uni_horo}\n{result_horo}'


my_horo = get_info('Козерог')

print(my_horo)


Выдает такую ошибку

PS C:\Users\DenDuatlov\Desktop\Bot_Horoskpe\new_bot17.09.2021> & C:/Users/DenDuatlov/AppData/Local/Programs/Python/Python38-32/python.exe c:/Users/DenDuatlov/Desktop/Bot_Horoskpe/new_bot17.09.2021/capricon.py
Traceback (most recent call last):
File "c:/Users/DenDuatlov/Desktop/Bot_Horoskpe/new_bot17.09.2021/capricon.py", line 27, in
my_horo = get_info('Козерог')
File "c:/Users/DenDuatlov/Desktop/Bot_Horoskpe/new_bot17.09.2021/capricon.py", line 23, in get_info
result_horo = get_horoscope(ask_horo)
File "c:/Users/DenDuatlov/Desktop/Bot_Horoskpe/new_bot17.09.2021/capricon.py", line 15, in get_horoscope
item = soup.findAll('div', class_='_1E4Zo _3BLIa')[0]
IndexError: list index out of range

Подскажите, пожалуйста, как исправить? нашел в интернете несколько решений, но они для математических задач. Не понимаю как их адаптировать под данный код.
  • Вопрос задан
  • 235 просмотров
Пригласить эксперта
Ответы на вопрос 1
longclaps
@longclaps
item = soup.findAll('div', class_='_1E4Zo _3BLIa')[0]
Пытаешься обратиться к пустому списку.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы