Задать вопрос
@yahabrovec

Python bs4 выбрать нужный элемент не имеющий класс?

Всем привет. Передо мной встала задача написания небольшого парсера на python.
Но возникли проблемы с извлечение нужного текста. Фишка в том что нужный текст находится в div элементе который не имеет ни идентификатора ни класса. Достать его действительно непросто, не используя костыли.
Может кто-то знает более или менее универсальное решение для таких случаев.

Вот одна из ссылок
Я говорю о div`е в котором лежит текст песни.
  • Вопрос задан
  • 1117 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
Говноверстка требует отчаянных мер.
soup.find("div", string="Usage of azlyrics.com content by any third-party lyrics provider is prohibited by our licensing agreement. Sorry about that.")
Ответ написан
Комментировать
@Andrey_Dolg
Магия
XPath
Ответ написан
Комментировать
@DoyleArthur
import requests
from bs4 import BeautifulSoup


def get_html(url):
    r = requests.get(url)
    return r.text


def get_data(html):
    soup = BeautifulSoup(html, 'lxml')
    divs = soup.find_all('div')
    return divs[21].text



def main():
    url = 'https://www.azlyrics.com/lyrics/imaginedragons/roots.html'
    print(get_data(get_html(url)))



if __name__ == '__main__':
    main()


Вот так вышло спарсить, проверил на других песнях, тоже парсит, вёрстка одинаковая
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
29 янв. 2025, в 08:43
1500 руб./за проект
29 янв. 2025, в 08:35
500 руб./за проект
29 янв. 2025, в 08:01
8000 руб./за проект