2010-02-05 45 views
1

假设我有一些HTML代码,像这样(从降价或纺织或某事产生):如何在Python中为HTML文本生成目录?

<h1>A header</h1> 
<p>Foo</p> 
<h2>Another header</h2> 
<p>More content</p> 
<h2>Different header</h2> 
<h1>Another toplevel header 
<!-- and so on --> 

我怎么可能产生的使用Python它的内容表?

回答

6

使用HTML解析器(如lxmlBeautifulSoup)查找所有标题元素。

+0

他们如何比较? – van 2010-02-05 21:01:35

+3

@van:BeautifulSoup是纯Python,但不兼容3.x。 lxml是好的,但需要一个C编译器来构建。 – 2010-02-05 21:03:31

+0

我的确在寻找更多的代码示例,但我想我已经找到了答案。我可能会使用lxml,因为(a)它对于更多的东西是有用的,并且(b)具有看起来像类名的模块会扰乱我的美感。 – LeafStorm 2010-02-05 21:28:33

3

这是一个使用lxml和xpath的例子。

from lxml import etree 
doc = etree.parse("test.xml") 
for node in doc.xpath('//h1|//h2|//h3|//h4|//h5'): 
    print node.tag, node.text