Я агрегировал содержание из нескольких внешних источников и нахожу, что часть его содержит ошибки в его HTML/DOM. Хорошим примером был бы HTML, пропускающий закрывающие тэги или уродливые атрибуты тега. Существует ли способ очистить ошибки в Python исходно или каких-либо сторонних модулях, которые я мог установить?
Я бы предложил Beautifulsoup . У него есть замечательный синтаксический анализатор, который может довольно изящно обрабатывать уродливые теги. После того, как вы прочитали все дерево, вы можете просто вывести результат.
from bs4 import BeautifulSoup
tree = BeautifulSoup(bad_html)
good_html = tree.prettify()
Я использовал это много раз, и он творит чудеса. Если вы просто извлекаете данные из bad-html, BeautifulSoup действительно хорош, когда дело доходит до извлечения данных.
Существуют привязки Python для HTML Tidy Library Project , но автоматическая очистка поврежденного HTML - это крепкий орешек. Это не так уж отличается от попытки автоматически исправить исходный код - здесь слишком много возможностей. Вам все равно нужно будет просмотреть результат и почти наверняка внести дополнительные исправления вручную.