【发布时间】:2014-04-21 12:54:06
【问题描述】:
对于类似于this one 的研究项目,我想从python documentation. 中提取所有“文档单元” python文档中的文档单元可以是(作为html-meta标签):
- 一个方法(dl类:方法)
- 一个类(dl类:类)
- 一个section(div类:section)
这些应该是嵌套的:一个section包含几个classes,其中包含几个 方法s。但实际上这是非常不规则的。
Example1: 如果一个部分包含多个类和方法:我想单独获取每个方法和没有方法的每个类(我已经得到)和没有类的部分(我已经在那种情况下有)并且没有方法(我也已经有)但有其余的方法(因为那里有很多额外的东西)
Example2:如果一个方法或一个类没有出现它们的部分,我也想要它们,如上所述,一定不要忘记它们。
注意: 这样做并不容易,但我想将它们全部放在一个列表中,该列表具有与原始文档中相同的顺序。
我使用 BeautifulSoup 进行了尝试,但我想为此我需要搜索“从叶到根”以首先获取最深的元素 - BeautifulSoup4 不支持 (AFAIK)。
First I thought the problem is to avoid duplicates 但实际上这不是主要问题。
感谢您的提示。
【问题讨论】:
-
当然你想要一棵树,而不是“与原始列表具有相同顺序的列表”。我不明白您从 "Example 1... Example 2... Note"; 中写的任何内容;这些似乎相互冲突,也与 BS 冲突。而且我什至不明白评论“Example2:如果一个方法或一个类没有出现它们的部分,我也想要它们,如上所述,不能忘记它们。”请编辑为阐明。您是指构建树应该如何对待子节点?兄弟节点?后人?所有这些?
标签: python documentation beautifulsoup lxml html5lib