忽略Python中的XML错误

时间:2008-12-30 10:48:33

标签: python xml minidom

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

3 个答案:

答案 0 :(得分:11)

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

  

Beautiful Soup是一个Python HTML / XML   解析器专为快速周转而设计   屏幕抓取等项目。三   功能强大:

     
      
  1. 如果给你不好的标记,美丽的汤不会窒息。它会产生一个   解析树大致如同   你的原始文件很有意义。   这通常足以收集   你需要和逃跑的数据。
  2.   
  3. 美丽的汤提供了一些简单的方法和Pythonic习语   导航,搜索和修改   解析树:解剖a的工具包   记录并提取您需要的内容。   您不必创建自定义   每个应用程序的解析器。
  4.   
  5. Beautiful Soup会自动将传入的文档转换为Unicode   和传出的文件到UTF-8。您   不必考虑编码,   除非文件没有指明   编码和美丽的汤不能   自动检测一个。然后你必须   指定原始编码。
  6.         

    美丽的汤解析你的任何事情   给它,树遍历   东西给你。你可以告诉它“找到   所有链接“,或”查找所有链接   类externalLink“,或”查找全部   网址与“foo.com”匹配的链接,   或者“查找已经获得的表格标题   粗体文字,然后给我那个文字。“

答案 1 :(得分:3)

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

答案 2 :(得分:0)

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