IndexError: list index out of range

popik3000

Новичок
Пользователь
Сен 7, 2020
10
0
1
Я изучая парсеры. Решил поработать с видео. Списал код - всё работает. Но когда я переделал код (изменил сылку и указал другой класс) у меня с классом artisttrack всё получилось, а с классом trackblock - нет! Помогите, пожалуйста! Объясните ошибку! Может, потому что там у тегов разное содержимое(сылки, картинки, текст).
Также я не могу понять что делает буква 'а' в 8 строке! Ниже я приведу два кода:


Class artisttrack (в нем всё работает):

Python:
import requests
from bs4 import BeautifulSoup as BS

r = requests.get('https://lyricshub.ru/en/author/pasquale%20losito')
html = BS(r.content, 'html.parser')

for el in html.select('.artisttrack'):
    title = el. select('.artisttrack > a')
    print( title[0].text)
Class trackblock(в нем ошибка):

Python:
import requests
from bs4 import BeautifulSoup as BS

r = requests.get('https://lyricshub.ru/en/author/pasquale%20losito')
html = BS(r.content, 'html.parser')

for el in html.select('.trackblock'):
    title = el. select('.trackblock > a')
    print( title[0].text)

У меня python 3.9.0, Windows 10 Pro
ЗАРАНИЕ СПАСИБО!
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
852
433
63
Ошибка возникает потому, что внутри элемента с классом trackblock нет тега a и в переменную title записывается пустой список.
Также я не могу понять что делает буква 'а' в 8 строке
Указывает на вложенный в элемент с классом artisttrack тег a (гиперссылку).
Я изучая парсеры
Вот тут можете почитать про основы работы с библиотекой BeautifulSoup: ссылка.
 

popik3000

Новичок
Пользователь
Сен 7, 2020
10
0
1
Ошибка возникает потому, что внутри элемента с классом trackblock нет тега a и в переменную title записывается пустой список.

Указывает на вложенный в элемент с классом artisttrack тег a (гиперссылку).

Вот тут можете почитать про основы работы с библиотекой BeautifulSoup: ссылка.
ОГРОМНОЕ СПАСИБО!
 

Форум IT Специалистов