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

use*_*545 5 python xml parsing beautifulsoup

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

  • 我的第一个任务是将 HTML 文件拆分为其组成文档。我认为这很容易,因为文档被<DOC NUMBER=1>body of the 1st document</DOC> 等等包围 。

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

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

    <!-- Hide XML section from browser <DOC NUMBER=1> <DOCFULL> --> BODY <!-- Hide XML section from browser </DOCFULL> </DOC> -->

Tha*_*Guy 1

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

xml_soup = BeautifulSoup(xml_object, 'xml')
Run Code Online (Sandbox Code Playgroud)

这应该可以解决你的问题。您可以使用该xml_soup对象来解析剩余的 html,但是我建议专门为 html 实例化另一个 soup 对象:

soup = BeautifulSoup(html_object)
Run Code Online (Sandbox Code Playgroud)