Красивый вывод HTML в файл с отступами с помощью lxml.html

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы сделать HTML-код более читаемым и структурированным в Python, используем библиотеку BeautifulSoup. Прежде всего установим ее командой pip install beautifulsoup4. Затем применим метод prettify(), который преобразует ваш HTML-код, записывая результат в файл следующим образом:

Python
Скопировать код
from bs4 import BeautifulSoup

# Ваш исходный HTML-код
html_content = "<your_html_here>"
soup = BeautifulSoup(html_content, 'html.parser')
# Код, подвергнутый обработке
pretty_html = soup.prettify()

# Запишите этот код в файл
with open('formatted.html', 'w') as file:
    file.write(pretty_html)

Таким образом, ваш HTML-код становится более структурированным и понятным, и может быть найден в файле formatted.html.

Кинга Идем в IT: пошаговый план для смены профессии

Инструменты для форматирования кода

BeautifulSoup – это отличный инструмент для обработки HTML, однако в зависимости от задачи, может быть полезным использовать другие инструменты. Подборка нескольких инструментов для альтернативного форматирования кода представлена ниже.

Продуктивное форматирование с lxml

Если вы работаете с HTML-документами, созданными с помощью lxml, используйте функцию lxml.etree.tostring(), установив параметр pretty_print=True. Для работы с этим кодом в Python используйте значение 'unicode':

Python
Скопировать код
from lxml import etree

# Исходный HTML-код
html_element = etree.Element("html")

# Форматируемый код
pretty_html = etree.tostring(html_element, encoding='unicode', pretty_print=True)

# Сохраняем код в файл 'formatted_lxml.html'
with open('formatted_lxml.html', 'w') as file:
    file.write(pretty_html)

В результате получаем аккуратный и чистый HTML-файл.

Набор инструментов html5print

Если вам нужен полный набор инструментов для обработки кода, воспользуйтесь библиотекой html5print. Она может работать не только с HTML, но и с CSS и JavaScript.

Python
Скопировать код
from html5print import HTMLBeautifier

# Исходный HTML-код
html = "<your_html_code>"
# Обработанный код
pretty_html = HTMLBeautifier.beautify(html, 4)

# Сохраняем результат в 'html5_output.html'
with open('html5_output.html', 'w') as file:
    file.write(pretty_html)

Создание и форматирование с помощью yattag

Если вы ищете инструмент, который строит и форматирует HTML одновременно, то yattag справится с этой задачей.

Python
Скопировать код
from yattag import Doc, indent

# Исходный HTML-код
doc, tag, text = Doc().tagtext()
with tag('html'):
    with tag('body'):
        with tag('p'):
            text('Hello world!')

# Отформатированный код
pretty_html = indent(doc.getvalue())

# Сохраняем результирующий код в 'yattag_output.html'!
with open('yattag_output.html', 'w') as file:
    file.write(pretty_html)

Этот инструмент позволяет вам контролировать отступы, создавая код, аналогично тому, как вы бы управляли персонажем в игре FIFA!

Мы стараемся сделать HTML-код правильным

Помните главное: прежде чем украшать HTML-код, убедитесь в его семантической корректности. Для проверки этого вы можете воспользоваться Валидатором W3C, который будет следить за качеством вашего кода.

Визуализация

Так можно представить HTML-код как стаю уток:

Markdown
Скопировать код
До использования Pretty Print: [🦆🦆🦆🦆🦆🦆🦆]
// Беспорядочное смешение элементов кода

Формат Pretty Print выстраивает все в логическую серию отступов:

Markdown
Скопировать код
После применения Pretty Print:
🦆
  🐥
    🦢
  🐥
🦆
// Отступы помогают аккуратно разместить всё в логичную последовательность.

Это наглядно демонстрирует, как неструктурированный HTML преобразуется в отформатированный и структурированный код.

Полезные материалы

  1. Онлайн форматирование JavaScript — сервис для форматирования JavaScript, который также работает и с HTML.
  2. GitHub – beautifier/js-beautify — код для форматирования HTML на платформе Node.js.
  3. HTML Tidy — инструмент, который превращает HTML-код в чистый и понятный.
  4. HTML-CSS-JS Prettify – Packagesплагин для Sublime Text, предназначенный для форматирования HTML, CSS и JavaScript кода.
  5. Beautiful Soup: Мы назвали его Tortoise, потому что он научил нас. — библиотека Python для обработки HTML и XML, возвращающая структуру и читабельность кода.
  6. Служба валидации разметки W3C — валидатор HTML, проверяющий корректность кода.
  7. Работа с HTML в Visual Studio Code — руководство по созданию стильного и неотразимого HTML.