【问题标题】:Ignoring XML errors in Python忽略 Python 中的 XML 错误
【发布时间】:2008-12-30 10:48:33
【问题描述】:

我在 Python 中使用 XML minidom (xml.dom.minidom),但是 XML 中的任何错误都会杀死解析器。 是否可以忽略它们,例如浏览器? 我正在尝试用 Python 编写浏览器,但如果标签不完全兼容,它只会引发异常。

【问题讨论】:

  • 祝浏览器项目好运!

标签: python xml minidom


【解决方案1】:

有一个名为BeautifulSoup 的库,我想这就是你要找的。 当您尝试解析无效的 XML 时,普通的 XML 解析器将无法工作。 BeautifulSoup 更容​​错,它仍然可以从无效的 XML 中提取信息。

Beautiful Soup 是 Python HTML/XML 专为快速周转而设计的解析器 像屏幕抓取这样的项目。三 功能使其功能强大:

  1. Beautiful Soup 不会因为你的错误标记而窒息。它产生一个 解析树大约为 与您的原始文件一样有意义。 这通常足以收集 你需要的数据然后逃跑。
  2. Beautiful Soup 提供了一些简单的方法和 Pythonic 成语 导航、搜索和修改 解析树:用于剖析 记录并提取您需要的内容。 您不必创建自定义 每个应用程序的解析器。
  3. Beautiful Soup 自动将传入的文档转换为 Unicode 并将传出文档转换为 UTF-8。你 不必考虑编码, 除非文件没有指定 编码和美丽的汤不能 自动检测一个。然后你只需要 指定原始编码。

Beautiful Soup 解析你的任何东西 给它,然后遍历树 给你的东西。你可以告诉它“查找 所有链接”或“查找所有链接 类 externalLink”或“查找所有 url 匹配“foo.com”的链接, 或“查找获得的表格标题 粗体字,然后给我那个文字。”

【讨论】:

  • 四年过去了,我仍然非常感谢这个答案。你救了我这么多痛苦。谢谢。
【解决方案2】:

应该注意,虽然 HTML 看起来像 XML,但它不是 XML。 XHTML 是 HTML 的 XML 形式。

【讨论】:

  • 美汤使用HTMLParser/SGML
【解决方案3】:

例如,请参阅extracting-text-from-html-file-using-python,了解有关在 Python 中解析 HTML 的方法的建议。

【讨论】:

    猜你喜欢
    • 2017-11-05
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 2020-09-05
    相关资源
    最近更新 更多