Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何构建html5lib解析器来处理XML和HTML标记的混合?_Python_Xml_Parsing_Beautifulsoup - Fatal编程技术网

Python 如何构建html5lib解析器来处理XML和HTML标记的混合?

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

我正在尝试使用BeautifulSoup解析一个HTML文件,该文件由从LexisNexis(法律数据库)批量下载的许多单独文档组成

  • 我的第一个任务是将HTML文件拆分为其组成文档。我认为这会很容易,因为文档被第一个文档的
    正文所包围,依此类推

  • 但是,此标记是XML标记,而不是HTML标记(文件中的所有其他标记都是HTML)。因此,对于常规HTML解析器,此标记在树中不可用

  • 如何在bs4中构建一个解析器来提取这个XML标记? 我附上HTML文件的相关部分:

    BODY


实例化BeautifulSoup对象时,可以在bs4中指定xml:

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对象)