Получить текст после класса Dynami c с текстом заголовка Python / bs4 - PullRequest
0 голосов
/ 16 марта 2020

Класс «метка» с текстом «Владелец 1» динамически изменяется, поэтому индексирование того же имени класса не согласовано. Я пытаюсь схватить имя «Джо Смит» после текстовой метки класса. В некоторых записях сначала указывается «Название компании».

    <div>
        <div class="label">Owner 1 Name</div>
        <div class="value">
        <div>Joe Smith</div>
    </div>
    <div>
        <div class="label">Company Name</div>
        <div class="value">
        <div>ACME CO</div>
    </div>

В строке примерно десять классов «label», как в коде выше. Владелец 1 Имя динамически изменяется в зависимости от записи и каждый раз попадает в другое место. Мне просто нужно значение имени для каждой записи.

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Это сделал трюк:

    target = soup.find("div", text="Owner 1 Name")
    print(target.find_next_sibling("div").get_text())
0 голосов
/ 16 марта 2020

Попробуйте так:

company = """your html above"""

from bs4 import BeautifulSoup as bs

soup = bs(company,'lxml')
target = soup.select('div[class="label"]:contains("Owner")+div>div')
print(target[0].text)

Вывод:

Джо Смит

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...