Я пытаюсь собрать информацию с веб-страницы, на которой перечислены различные привилегии банковской карты, и проанализировать данные в json. Я могу извлечь базовые c поля, такие как даты действия и имена с помощью bs4 и regex, довольно просто. Однако есть поле, которое я пытаюсь извлечь, которое содержит смешанную информацию, включая самые разные форматы и различные теги, с таблицами, простыми абзацами, заголовками, подзаголовками и т. Д.
Например, данные на странице может быть отформатирован так:
<h3>
Promotion Details
</h3>
<p>
<span style="text-decoration: underline;">
<strong>
Text
</strong>
</span>
</p>
<p>
Text
</p>
<p>
Text
</p>
или как:
<h3>
Text
</h3>
<p>
Moretext
</p>
или даже в тегах <ul>
и <li>
:
<h3>
Promotion Details
</h3>
<ul>
<li>
Text
<br/>
Text:
<strong>
Promocode
</strong>
</li>
<li>
Text
<br/>
Text:
<strong>
Promocode
</strong>
</li>
</ul>
или объединение тегов, как в:
<h3>
Event Details
</h3>
<div class="float-fix">
<table border="0" width="60%">
<tbody>
<tr>
<td style="padding: 5px; text-align: left; vertical-align: top; width: 20%;">
<strong>
<span style="font-size: 13px;">
Text
</span>
</strong>
</td>
<td style="padding: 5px; width: 80%;">
<span style="font-weight: 400; font-size: 13px;">
Text
</span>
</td>
</tr>
<tr>
<td style="padding: 5px; text-align: left; vertical-align: top; width: 20%;">
<strong>
<span style="font-size: 13px;">
Text
</span>
</strong>
</td>
<td style="padding: 5px; width: 80%;">
<span style="font-weight: 400; font-size: 13px;">
Text
</span>
</td>
</tr>
</tbody>
</table>
</div>
<h3>
Promotion Details
</h3>
<p>
<span style="text-decoration: underline;">
Text
</span>
</p>
<p>
Text
</p>
<p>
Text:
<strong>
Promocode
</strong>
</p>
Конечно, я мог бы go сделать скрипт, который классифицирует данные в разные форматы и возвращает информацию аккуратно, но я хочу знать, Существуют любые ресурсы, которые могут помочь мне немного упростить этот процесс, например, модуль python или библиотека.
Если такой ресурс недоступен или не будет эффективным способом решения этой задачи, что будет следующей лучшей альтернативой?