@yahabrovec

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

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

Вот одна из ссылок
Я говорю о div`е в котором лежит текст песни.
  • Вопрос задан
  • 1099 просмотров
Пригласить эксперта
Ответы на вопрос 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()


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

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

Похожие вопросы