@sazhyk

Как найти определенный текст в html?

Есть html-файлик. Хорошо структурирован. Содержимое примерно следующее.
Файлик
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Example</title>
    </head>
    <body>
        <div id="simple">
            <p class="one">
                Здесь какой-то текст
            </p>
            <p class="two">
                Здесь какой-то текст
            </p>
            <p class="three">
                Здесь какой-то текст
            </p>
            <p class="four">
                Здесь какой-то текст
            </p>
            <p class="five">
                Ваш уникальный идентификатор: 0123456789
            </p>
        </div>
    </body>
</html>

Используя bs4 нахожу нужный мне элемент
<p class="five">
     Ваш уникальный идентификатор: 0123456789
</p>
Фраза Ваш уникальный идентификатор: всегда так стоит, а значение этого идентификатора разное. И мне надо из разных документов достать это значение.
Сейчас примерно так выглядит
def find_id(document):
    with open(document) as fp:
        soup = BeautifulSoup(fp, "lxml")
    find_p = soup.find_all("p", {"class": "five"})
    # где-то тут надо найти этот самый идентификатор
    return uni_id # ну и вернуть его

Вопрос, как мне найти и вернуть значение идентификатора?
  • Вопрос задан
  • 1773 просмотра
Решения вопроса 1
crazyzubr
@crazyzubr
Python backend-developer
def find_id(document):
    with open(document) as fp:
        soup = BeautifulSoup(fp, "lxml")
    find_p = soup.find("p", {"class": "five"})
    text = find_p.get_text(strip=True) if find_p else ''
    if ':' in text:
        return text.split(':')[-1].strip()
    # возвратить пустую строку или рейзить ошибку или что-то другое
    return ''
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы