使用BeautifulSoup分割HTML文档

4 投票
2 回答
1934 浏览
提问于 2025-04-16 12:26

我们处理的是很长的合并后的HTML文档(为了转换成PDF)。在某些情况下,这个合并后的HTML文档需要按章节来分割(每个章节是以H1标签开头的独立HTML页面),或者按小章节来分割(每个小章节是以H1或H2标签开头的独立HTML页面)。到目前为止,我们使用BeautifulSoup来处理这些合并后的HTML文档,但我们找不到合适的方法来用BeautifulSoup提取子文档(比如从第一个H1到下一个H2)。

2 个回答

-1

既然没有人给你推荐用解析器的解决方案,我建议你可以自己用正则表达式来处理。

丹麦提到的第二点也是这个意思,因为“grep”这个名字来源于“全局 - 正则表达式 - 打印”。不过,这个过程有点复杂,因为你需要先用美化功能进行初步处理。

相反,正则表达式是一个强大的工具,可以直接在文本上使用。

你能多说说你想要做什么吗?

2

我之前用过BeautifulSoup,虽然不太确定它是否能直接满足你的需求,但我有两个建议。

搜索

下面是一些关于它搜索功能的文档。你可以试着同时搜索H1和H2标签,看看这样能否帮助你提取子文档。

http://www.crummy.com/software/BeautifulSoup/documentation.html#Searching the Parse Tree

美化输出 + grep

BeautifulSoup有一个非常实用的美化功能,可以把HTML格式化得更好看。完成后,每个H1或H2标签都会单独占一行,这样你就可以轻松使用像grep这样的文本处理工具,快速找到包含H1和H2的行号,并简单地提取它们之间的文本。

http://www.crummy.com/software/BeautifulSoup/documentation.html#Printing a Document

撰写回答