我在Python中使用XML minidom(xml.dom.minidom),但XML中的任何错误都将终止解析器.是否可以忽略它们,例如浏览器?我试图用Python编写浏览器,但如果标签不完全兼容,它只会引发异常.
有一个叫做BeautifulSoup的图书馆,我想这就是你要找的东西.当您尝试解析无效的XML时,普通的XML解析器将无法正常工作.BeautifulSoup更容错,它仍然可以从无效的XML中提取信息.
Beautiful Soup是一个Python HTML/XML解析器,专为快速周转项目而设计,例如屏幕抓取.三个功能使其功能强大:
如果给它不好的标记,美丽的汤不会窒息.它产生一个解析树,使其与原始文档几乎一样有意义.这通常足以收集您需要的数据并逃跑.
Beautiful Soup提供了一些简单的方法和Pythonic习语,用于导航,搜索和修改解析树:用于剖析文档和提取所需内容的工具包.您不必为每个应用程序创建自定义解析器.
Beautiful Soup会自动将传入的文档转换为Unicode,将传出的文档转换为UTF-8.您不必考虑编码,除非文档没有指定编码并且Beautiful Soup不能自动检测编码.然后你只需要指定原始编码.
美丽的汤解析你给它的任何东西,并为你做树遍历的东西.您可以告诉它"查找所有链接",或"查找类externalLink的所有链接",或"查找其网址匹配的所有链接"foo.com",或"查找具有粗体文本的表格标题,然后给出我那个文字."