from pathlib import Path
html = r'''
'''
path = Path("/mnt/data/balance_digital_house_safe.html")
path.write_text(html, encoding="utf-8")
# Simple structural validation with Python's HTML parser.
from html.parser import HTMLParser
void_tags = {"area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"}
class Validator(HTMLParser):
def __init__(self):
super().__init__()
self.stack = []
self.errors = []
def handle_starttag(self, tag, attrs):
if tag not in void_tags:
self.stack.append(tag)
def handle_startendtag(self, tag, attrs):
pass
def handle_endtag(self, tag):
if tag in void_tags:
return
if not self.stack:
self.errors.append(f"Лишний закрывающий тег {tag}>")
return
if self.stack[-1] == tag:
self.stack.pop()
elif tag in self.stack:
self.errors.append(f"Нарушен порядок закрытия: ожидался {self.stack[-1]}>, встретился {tag}>")
while self.stack and self.stack[-1] != tag:
self.stack.pop()
if self.stack:
self.stack.pop()
else:
self.errors.append(f"Закрывающий тег {tag}> без пары")
validator = Validator()
validator.feed(html)
print("Файл создан:", path)
print("Ошибок структуры:", len(validator.errors))
print("Незакрытых тегов:", validator.stack)