@mekkas111

Как не выводить результат с IndexError?

Если все поля на сайте заполнены, то результат:

Login: c4actbe011
Name: Юля Баева
City: Тула
Birthdate: 1986-09-17

Но если чего-то нет, или страница не найдена (404) то ошибка: IndexError: list index out of range

Нужно что-бы выводились только те поля, которые есть на сайте, пример с этим профилем:
( https://skypli.com/profile/live:remcoschuman )

Login: live:remcoschuman
Name: Putin

import requests
from bs4 import BeautifulSoup
profile = requests.get(f'https://skypli.com/profile/live:remcoschuman')
profile_soup = BeautifulSoup(profile.content, 'lxml')
profile_info = profile_soup.findAll('div', {'class': 'profile-box__table-value'})

profile_name = profile_info[1].text.strip()
profile_city = profile_info[2].text.strip()
profile_birthdate_result = profile_info[4].text.strip()
profile_birthdate = profile_birthdate_result.replace("-",".")
print(f'Login: {username}\nName: {profile_name}\nCity: {profile_city}\nBirthdate: {profile_birthdate_result}')


Как это можно сделать?
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Очевидно, добавить условное выражение, проверяющее длину списка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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