Skip to content

HTML страницы

Разбиение HTML на страницы

С помощью класса HtmlPageSplitter

from pagesmith import HtmlPageSplitter

html = """
<p>Начало текста
<a href="../Text/chapter1.xhtml" class="very-long-class-name-to-force-splitting">
Это ссылка с очень длинным текстом, который должен быть разделен на страницы, но сам тег должен оставаться целым
</a>
<span class="another-long-class-that-should-not-be-split">
Дополнительный текст, который продолжается дальше и должен также быть разделен на несколько страниц при сохранении структуры HTML
</span>
</p>
"""

for page in HtmlPageSplitter(html, target_length=50).pages():
    print(page)

Результирующие страницы

<p>Начало текста
</p><p><a href="../Text/chapter1.xhtml" class="very-long-class-name-to-force-splitting">
Это ссылка с очень длинным текстом, который </a></p>
<p><a href="../Text/chapter1.xhtml" class="very-long-class-name-to-force-splitting">должен быть разделен на страницы, но сам тег </a></p>
<p><a href="../Text/chapter1.xhtml" class="very-long-class-name-to-force-splitting">должен оставаться целым
</a></p><p><span class="another-long-class-that-should-not-be-split">
Дополнительный текст, который продолжается </span></p>
<p><span class="another-long-class-that-should-not-be-split">дальше и должен также быть разделен на несколько </span></p>
<p><span class="another-long-class-that-should-not-be-split">страниц при сохранении структуры HTML
</span></p>

Очистка HTML

refine_html очищает HTML от не нужных для чтения тэгов и убирает излишние вертикальные промежутки.