В итоге ничего путного для Sublime Text и других не нашел - очистил самописным скриптом на питоне:
from bs4 import BeautifulSoup, Comment
import os
def clean_html(html):
# Парсим HTML
soup = BeautifulSoup(html, 'html.parser')
# Удаляем комментарии
for element in soup(text=lambda text: isinstance(text, Comment)):
element.extract()
# Удаляем скрипты и стили
for script in soup(['script', 'style', 'link', 'meta']):
script.decompose()
# Оставляем только теги без атрибутов
for tag in soup.find_all(True):
if tag.name == "td":
tag.attrs = {key: value for key, value in tag.attrs.items() if key == "colspan"}
else:
tag.attrs = {}
print(tag.attrs)
# Удаляем пустые теги
for x in soup.find_all():
if len(x.get_text(strip=True)) == 0 and x.name not in ['br', 'img']:
x.extract()
# Удаляем ненужные теги, оставляя содержимое
invalid_tags = ['p', 'span']
for c in invalid_tags:
while soup.find(c):
exec(f"soup.{c}.unwrap()")
return str(soup.prettify())
dir_path = os.path.dirname(os.path.realpath(__file__))
fin_path = os.path.join(dir_path, "прайс.htm")
print(fin_path)
fin = open(fin_path, "r", encoding="cp1251")
html = fin.read()
html = clean_html(html)
fin.close()
fout_path = os.path.join(dir_path, "price.htm")
print(fout_path)
fout = open(fout_path, "w+", encoding="utf-8")
fout.write(html)
fout.close()