Разделяем CSS и HTML с помощью Python

Разделяем CSS и HTML с помощью Python

Разделяем CSS и HTML с помощью Python

Здравствуйте! При копировании некоторых веб страниц можно видеть огромные куски CSS стилей, находящихся в одном файле с разметкой. Все это приводит к неудобству при чтении и разборе кода. В сегодняшней статье мы рассмотрим как превратить внутренние стили страницы во внешние при помощи скрипта на Python.

Итак, код:





import os

import re



# модуль для обработки файлов

import shutil



# Создание папки для файлов стилей, если её еще нет

css_folder = "styles"

if not os.path.exists(css_folder):

    os.makedirs(css_folder)



# Чтение исходного HTML файла с явным указанием кодировки UTF-8

with open("index.html", "r", encoding="utf-8") as f:

    html_content = f.read()



# Извлечение CSS стилей из HTML

css_styles = re.findall(r'<style.*?>(.*?)</style>', html_content, re.DOTALL)



# Создание копии исходного HTML файла без стилей

shutil.copyfile("index.html", os.path.join(css_folder, "updated_index.html"))



# Подключение стилей к HTML и сохранение их в отдельные файлы

for i, css in enumerate(css_styles):

    # Запись стилей в отдельный файл

    with open(os.path.join(css_folder, f"style_{i+1}.css"), "w", encoding="utf-8") as css_file:

        css_file.write(css)

    # Добавление подключения к внешнему файлу стилей в обновленный HTML файл

    with open(os.path.join(css_folder, "updated_index.html"), "a", encoding="utf-8") as updated_html_file:

        updated_html_file.write(f'<link rel="stylesheet" type="text/css" href="styles/style_{i+1}.css">')



print("Стили были вырезаны из HTML и сохранены в отдельные файлы в папке 'styles'. HTML файл был обновлен с подключением стилей.")







В данном примере для поиска тегов стилей используется модуль re для поиска регулярных выражений в Python, который подробно описан в видеокурсе Программирование на Python с Нуля до Гуру

Вы можете адаптировать данный скрипт, с учетом ваших потребностей, будь то вынос внутренних js скриптов .
Таким образом мы разделили HTML разметку и CSS стили при помощи Python и его встроенных библиотек, что несомненно улучшит читаемость кода.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий