Как мне сгенерировать оглавление для текста HTML в Python? - PullRequest
1 голос
/ 05 февраля 2010

Предположим, у меня есть некоторый HTML-код, например, такой (сгенерированный из Markdown или Textile или что-то в этом роде):

<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?

Ответы [ 2 ]

6 голосов
/ 05 февраля 2010

Используйте HTML-анализатор, например lxml или BeautifulSoup , чтобы найти все элементы заголовка.

3 голосов
/ 06 февраля 2010

Вот пример использования 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
...