使用BeautifulSoup分割HTML文档
我们处理的是很长的合并后的HTML文档(为了转换成PDF)。在某些情况下,这个合并后的HTML文档需要按章节来分割(每个章节是以H1标签开头的独立HTML页面),或者按小章节来分割(每个小章节是以H1或H2标签开头的独立HTML页面)。到目前为止,我们使用BeautifulSoup来处理这些合并后的HTML文档,但我们找不到合适的方法来用BeautifulSoup提取子文档(比如从第一个H1到下一个H2)。
2 个回答
既然没有人给你推荐用解析器的解决方案,我建议你可以自己用正则表达式来处理。
丹麦提到的第二点也是这个意思,因为“grep”这个名字来源于“全局 - 正则表达式 - 打印”。不过,这个过程有点复杂,因为你需要先用美化功能进行初步处理。
相反,正则表达式是一个强大的工具,可以直接在文本上使用。
你能多说说你想要做什么吗?
我之前用过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