BeautifulSoup найти конкретную строку - PullRequest
0 голосов
/ 12 октября 2018

Я только начал небольшой «проект» по изучению красивого супа, и хотя сайт BS был огромным, я не смог найти ответ на свой вопрос.Я анализирую Billboard100 и мне удалось получить список всех песен по их элементам в виде массива - хорошо, я могу назвать отдельный список для разных песен.Проблема начинается, когда мне нужно получить немного деталей - название песни, имя исполнителя и т. Д. Из этого списка.Я попробовал text.strip (), а затем split () и индексирование, но разные песни имеют разные детали в разных позициях, что означает, что я, вероятно, должен найти их по классам div, так как они используют одни и те же для всех песен, и вот где я застрял.

<div class="chart-list-item__title">
<span class="chart-list-item__title-text">
Mona Lisa
</span>
</div>
<div class="chart-list-item__artist">
 Lil Wayne Featuring Kendrick Lamar
</div>

Это всего лишь часть кода - допустим, я пытаюсь получить «Мона Лиза» и «Лил Уэйн с Кендриком Ламаром».Есть ли способ использовать BeautifulSoup в HTML, который я уже извлек из исходного HTML?

1 Ответ

0 голосов
/ 12 октября 2018

Вы сможете найти div с нужным именем класса:

. Этот код предполагает, что в качестве супа у вас есть только карта (элемент списка для выбранной вами песни), а не вся страница:

title = card.find("div", {"class": "chart-list-item__title"}).contents[0]
artist = card.find("div", {"class": "chart-list-item__artist"}).contents[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...