Как прогнать файл через Beautiful Soup один раз и сохранить сделанные изменения в разные файлы максимально быстро
Необходимо прогнать файл(потенциально не один) через Beautiful Soup один раз, а дальше использовать его копии(или иной способ) для работы(изменение и последующее сохранение копий).
В файле несколько таблиц, одна из которых содержит несколько тыс. строк и с десяток полей.
Если использовать copy.copy() то выходит около 2.5-4 секунд. Что считаю совсем не быстро. Разбирать файл каждый раз, получается быстрее.
Подскажите, как можно максимально быстро выполнить задачу!? Может быть возможно применить иной подход!?
from bs4 import BeautifulSoup as bs
import bs4
import copy
def test(soup:bs4):
''' Разбор файла и получение необходимых данных. Вернуть Dict'''
# Простой разбор и получение данных из "soup"
data = {'soup':soup, 'и':'т.д.'}
return data
if __name__ == '__main__':
# Открыть файл
with open(r'C:/index.html', 'r', encoding='UTF-8') as f:
file = f.read()
# Прогон файла через Beautiful Soup один раз
soup = bs(file, 'lxml')
# Разобрать и получить необходимые данные из файла
preparing_data = test(soup)
N = 10
# На каждой итерации взять исходник "soup"
# произвести какие-то действия и сохранить в отдельные файл(ы).
for i in range(N):
soup = copy.copy(preparing_data['soup']) # Сильно медленно.
# Куча каких-то действия с "soup", в том числе изменение
# и последующее сохранение в отдельный файл.
# Например добавление/удаление тегов, стилей и др.