@chrispsow

Как редактрировать .html документ Python скриптом?

Всем привет. Есть достаточно объемные(от 200 до +-3000 строк) .html и .css документы.

Как реализовать скрипт, который

1. заменяет определенные слова, например < img на < asdf_img

2. Вставляет определенный текст, например < meta charset ...> внутри < head>< /head> т.е. найти слово и вставить перед ним или после него

3. Удаляет слово и все что дальше него до определенного момента, например удалить начиная со < script> до < /script>, чтобы полностью убрать этот тег

4. Может вставлять много текста из css документа, так же в определнное место

Видел реализации в интернете, но они были через построчное чтение. Либо через read(), но туда ведь много текста не засунешь

Может быть есть готовые библиотеки какие-нибудь?
  • Вопрос задан
  • 770 просмотров
Решения вопроса 1
moiseykin
@moiseykin
߷ крутится, % мутятся
С этими задачами хорошо справляется библиотека beautifulsoup4.

Пример:
from bs4 import BeautifulSoup

html = """
<html><head><title>Example</title><style>body {color: red}</style></head>
<body>
<ul class="list">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
<script>alert('alarm');</script>
</body>
</html>
"""

soup = BeautifulSoup(html, 'html.parser')

# 1. замена тегов

for ul in soup.find_all('ul'):
    ul.name = 'div'

for li in soup.find_all('li'):
    li.name = 'span'

# 2. втавка тега

meta = soup.new_tag('meta')
meta.attrs['charset'] = 'utf-8'

soup.find('head').insert_after(meta)

# 3. очистка контента внутри тега

soup.find('script').clear()

# 4. вставка текста

soup.find('head').find('style').append('html {background: black}')

print(soup.prettify())
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
по-простому- регулярками или заменой строк

по-взрослому - lxml и DOM - дерево
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы