Python 如何构建html5lib解析器来处理XML和HTML标记的混合?
我正在尝试使用BeautifulSoup解析一个HTML文件,该文件由从LexisNexis(法律数据库)批量下载的许多单独文档组成Python 如何构建html5lib解析器来处理XML和HTML标记的混合?,python,xml,parsing,beautifulsoup,Python,Xml,Parsing,Beautifulsoup,我正在尝试使用BeautifulSoup解析一个HTML文件,该文件由从LexisNexis(法律数据库)批量下载的许多单独文档组成 我的第一个任务是将HTML文件拆分为其组成文档。我认为这会很容易,因为文档被第一个文档的正文所包围,依此类推 但是,此标记是XML标记,而不是HTML标记(文件中的所有其他标记都是HTML)。因此,对于常规HTML解析器,此标记在树中不可用 如何在bs4中构建一个解析器来提取这个XML标记? 我附上HTML文件的相关部分: BODY 实例化Beautifu
- 我的第一个任务是将HTML文件拆分为其组成文档。我认为这会很容易,因为文档被第一个文档的
正文所包围,依此类推
- 但是,此标记是XML标记,而不是HTML标记(文件中的所有其他标记都是HTML)。因此,对于常规HTML解析器,此标记在树中不可用
- 如何在bs4中构建一个解析器来提取这个XML标记?
我附上HTML文件的相关部分:
BODY
xml_soup = BeautifulSoup(xml_object, 'xml')
这会解决你的问题。您可以使用xml\u soup
对象来解析剩余的html,但是我建议为html专门实例化另一个soup对象:
soup = BeautifulSoup(html_object)
谢谢!所以我试过了,但我认为它不能正确处理它。如果我尝试xml_soup(“doc”),则不会返回任何内容,如果我尝试打印(xml_soup.prettify),则会得到一长行文件“/usr/local/lib/python2.7/site packages/bs4/element.py”,第1021行,在解码缩进内容、最终的_编码、格式化程序)文件“/usr/local/lib/python2.7/site packages/bs4/element.py”,第1068行,在decode_中,内容最终被:RuntimeError:调用Python对象时超出了最大递归深度,因此不应发生递归错误。这可能是bs4中的一个错误,如果您想使用BeautifulSoup3,那么您可以使用bs3的BeautifulStoneSoup,而不是执行
xml\u-soup=BeautifulSoup(xml\u-object,'xml')
。安装bs3后,执行以下操作:从BeautifulSoup导入BeautifulStoneSoup
然后xml\u soup=BeautifulStoneSoup(xml\u对象)