@Pyden

Как поменять текст в html файле и сохранить этот html?

Здраствуйте.

Первый день изучаю библиотеку BeautifulSoup. Подскажите, пожалуйста.

Нахожу нужный мне тег и через .text вывожу содержимое текста. С этим все понятно.
Мне необходимо поменять этот текст. Получилось сделать это через метод .replace. Как теперь мне перезаписать html или создать новый и записать все тоже самое, но с измененным текстом?
from bs4 import BeautifulSoup
from datetime import datetime

with open ('3(от5мая).html','r',encoding='utf-8') as f:
    soup = BeautifulSoup(f.read(), 'lxml')

# Получаем сегодняшнюю дату
date = datetime.now().date()
# Поиск нужного тега
data_in = soup.find('p',style="padding-bottom: 1pt;padding-left: 2pt;text-indent: 0pt;text-align: center;")
# Меняем старую дату на новую
data_in = data_in.text.replace('старая дата', 'новая дата')


через
with open ('новый.html', 'w',encoding='utf-8') as f1:
    f1.write(soup)

не получается, так как строка должна быть, а не суп.

UPD.
Как изменить текст понял, через метод .string. А вот как сохранить изменения пока не понял.
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
@Pyden Автор вопроса
Если кому интересно, нашел для себя вот такой вариант. Записывает с изменениями новый html.

file2 = open('new.html', "w+", encoding='utf-8')
file2.write(soup.prettify())
file2.close()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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