Я использую XML minidom (xml.dom.minidom) в Python, но любая ошибка в XML убьет анализатор. Можно ли их игнорировать, например, браузер? Я пытаюсь написать браузер на Python, но он просто выдает исключение, если теги не полностью совместимы.
Есть библиотека под названием BeautifulSoup , я думаю, это то, что вы ищете. Когда вы пытаетесь проанализировать недопустимый XML, обычный синтаксический анализатор XML не будет работать. BeautifulSoup более отказоустойчив, он все еще может извлекать информацию из недопустимого XML.
Красивый суп - это Python HTML / XML парсер предназначен для быстрого оборота такие проекты, как скрининг экрана. Три функции делают его мощным: Прекрасный суп не захлебнется, если вы дадите ему плохую разметку. Это дает разбирать дерево, которое составляет примерно как большой смысл как ваш оригинальный документ. Обычно этого достаточно, чтобы собрать данные вам нужны и убегайте. Beautiful Soup предоставляет несколько простых методов и пифоновых идиом для навигация, поиск и изменение дерево разбора: инструментарий для анализа документ и извлечение того, что вам нужно. Вам не нужно создавать пользовательские парсер для каждого приложения. Beautiful Soup автоматически конвертирует входящие документы в Unicode и исходящие документы на UTF-8. Вы не нужно думать о кодировках, если в документе не указано кодирование и красивый суп не может автоопределение одного. Тогда вам просто нужно указать оригинальную кодировку Красивый суп разбирает все, что вы дать, и делает обход дерева вещи для вас. Вы можете сказать это "Найти все ссылки ", или" Найти все ссылки класса externalLink "или" Найти все ссылки, чьи URL соответствуют "foo.com", или "Найдите заголовок таблицы, который получил выделите жирным шрифтом, затем дайте мне этот текст. "
Красивый суп - это Python HTML / XML парсер предназначен для быстрого оборота такие проекты, как скрининг экрана. Три функции делают его мощным:
Красивый суп разбирает все, что вы дать, и делает обход дерева вещи для вас. Вы можете сказать это "Найти все ссылки ", или" Найти все ссылки класса externalLink "или" Найти все ссылки, чьи URL соответствуют "foo.com", или "Найдите заголовок таблицы, который получил выделите жирным шрифтом, затем дайте мне этот текст. "
Следует отметить, что хотя HTML выглядит как XML, он не является XML. XHTML - это XML-форма HTML.
См., Например, extracting-text-from-html-file-using-python для предложений относительно способов разбора HTML в Python.