Игнорирование ошибок XML в Python

Я использую XML minidom (xml.dom.minidom) в Python, но любая ошибка в XML уничтожит синтаксический анализатор. Можно ли их игнорировать, как браузер например? Я пытаюсь написать браузер на Python, но он просто выдает исключение, если теги не полностью совместимы.

Удачи с браузерным проектом!

Ali Afshar 30.12.2008 18:33
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
6
1
4 323
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Есть библиотека под названием BeautifulSoup, я думаю, это то, что вы ищете. Поскольку вы пытаетесь проанализировать недопустимый XML, обычный синтаксический анализатор XML не будет работать. BeautifulSoup более отказоустойчив, он все еще может извлекать информацию из недопустимого XML.

Beautiful Soup is a Python HTML/XML parser designed for quick turnaround projects like screen-scraping. Three features make it powerful:

  1. Beautiful Soup won't choke if you give it bad markup. It yields a parse tree that makes approximately as much sense as your original document. This is usually good enough to collect the data you need and run away.
  2. Beautiful Soup provides a few simple methods and Pythonic idioms for navigating, searching, and modifying a parse tree: a toolkit for dissecting a document and extracting what you need. You don't have to create a custom parser for each application.
  3. Beautiful Soup automatically converts incoming documents to Unicode and outgoing documents to UTF-8. You don't have to think about encodings, unless the document doesn't specify an encoding and Beautiful Soup can't autodetect one. Then you just have to specify the original encoding.

Beautiful Soup parses anything you give it, and does the tree traversal stuff for you. You can tell it "Find all the links", or "Find all the links of class externalLink", or "Find all the links whose urls match "foo.com", or "Find the table heading that's got bold text, then give me that text."

Четыре года спустя я все еще очень благодарен за этот ответ. Ты спас меня от такой боли. Спасибо.

edef 29.09.2012 16:35

См., Например, извлечение текста из файла HTML с использованием Python для предложений относительно способов синтаксического анализа HTML в Python.

Следует отметить, что хотя HTML выглядит как XML, это не XML. XHTML - это XML-форма HTML.

Beautifulsoup использует HTMLParser / SGML <заполните пустое поле, я забыл>

edef 02.01.2009 13:55

Другие вопросы по теме