Python. Как вывести имя исполнителя

Имеется парсер, результатом выдачи которого является большое количество подобных дивов:

<div class="dataZD">
                    Для: Олег                    . Дата заказа: 2020-05-27 (16:21:34)
                                        <br/>
</div>
<div class="dataZD">
                    Для: Анна                    . Дата заказа: 2020-05-27 (16:18:21)
                    <br/> Дата взятия заказа: 2020-05-27 (16:36:58)                    <br/>
                    Исполнитель: Иван
                                    </div>

Как мне вывести имя исполнителя, учитывая что в некоторых дивах он отсутствует?


Ответы (1 шт):

Автор решения: gil9red

Можно вытащить регулярками нужные поля.

Пример:

import re
from bs4 import BeautifulSoup

html = """
<div class="dataZD">
                    Для: Олег                    . Дата заказа: 2020-05-27 (16:21:34)
                                        <br/>
</div>
<div class="dataZD">
                    Для: Анна                    . Дата заказа: 2020-05-27 (16:18:21)
                    <br/> Дата взятия заказа: 2020-05-27 (16:36:58)                    <br/>
                    Исполнитель: Иван
                                    </div>
"""

root = BeautifulSoup(html, 'html.parser')
for x in root.select('div.dataZD'):
    text = x.get_text(strip=True)
    print(text)

    m = re.search('Для: (\w+)\s*\.', text)
    if m:
        customer = m.group(1)
        print(f'Для: "{customer}"')

    m = re.search('Дата заказа: (\d{4}-\d{2}-\d{2} \(\d{2}:\d{2}:\d{2}\))', text)
    if m:
        date = m.group(1)
        print(f'Дата заказа: "{date}"')

    m = re.search('Исполнитель: (\w+)\s*', text)
    if m:
        executor = m.group(1)
        print(f'Исполнитель: "{executor}"')

    print()

Результат:

Для: Олег                    . Дата заказа: 2020-05-27 (16:21:34)
Для: "Олег"
Дата заказа: "2020-05-27 (16:21:34)"

Для: Анна                    . Дата заказа: 2020-05-27 (16:18:21)Дата взятия заказа: 2020-05-27 (16:36:58)Исполнитель: Иван
Для: "Анна"
Дата заказа: "2020-05-27 (16:18:21)"
Исполнитель: "Иван"
→ Ссылка