Remasik
@Remasik

Как автоматически валидировать html?

Появилась необходимость валидировать множество html файлов. Отступы расставить (или хотя бы не удалять существующие), закрыть незакрытые теги и тд.

Из онлайн сервисов не нашел таких, которые закрывают теги, только отступы расставляют.
Из программ Tidy, но она чудит и делает совсем не то. text превращает в text

Пробовал использовать html5lib для python, но тоже ничего путного не вышло.
import html5lib

def pars(html):
    parser = html5lib.HTMLParser(tree=html5lib.getTreeBuilder("dom"))
    dom_tree = parser.parseFragment(html)
    walker = html5lib.getTreeWalker("dom")
    stream = walker(dom_tree)

    s = html5lib.serializer.htmlserializer.HTMLSerializer(omit_optional_tags=False)
    return u''.join(s.serialize(stream))

res = pars(u'html code')
print res


Есть ли готовые решения, для подобной валидации, хотя бы закрыть незакрытые теги?

P.S. Вроде хром сам умеет закрывать незакрытые теги, а могут ли остальные браузеры, как хром, немного подправляют html, закрывая незакрытые теги и тд? (firefox, opera, ie)

Благодарю за ответы.
  • Вопрос задан
  • 325 просмотров
Пригласить эксперта
Ответы на вопрос 2
streetflush
@streetflush
Используйте Jade
Ответ написан
sim3x
@sim3x
lxml.de/parsing.html#parsing-html

pretty_print=True
+

stackoverflow.com/a/9050454

lxml.etree.HTMLParser()? - (because the xml is broken) Here's a secret - HTMLParser() is... a Parser with recover=True
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы