3

我有一个包含段落的 HTML 片段。(我的意思是p标签。)我想将字符串分成不同的段落。例如:

'''
<p class="my_class">Hello!</p>
<p>What's up?</p>
<p style="whatever: whatever;">Goodbye!</p>
'''

应该变成:

['<p class="my_class">Hello!</p>',
 '<p>What's up?</p>'
 '<p style="whatever: whatever;">Goodbye!</p>']

什么是解决这个问题的好方法?

4

4 回答 4

5

如果您的字符串仅包含段落,您可以使用精心制作的正则表达式和re.split(). 但是,如果您的字符串是更复杂的 HTML,或者并非总是有效的 HTML,您可能需要查看BeautifulSoup包。

用法如下:

from BeautifulSoup import BeautifulSoup 

soup = BeautifulSoup(some_html)

paragraphs = list(unicode(x) for x in soup.findAll('p'))
于 2010-02-16T22:28:27.937 回答
2

用于lxml.html将 HTML 解析为所需的形式。这与推荐 BeautifulSoup 的人的建议基本相同,只是lxml仍在积极开发中,而 BeatifulSoup 的开发速度已经放缓。

于 2010-02-16T22:33:20.807 回答
0

使用BeautifulSoup解析 HTML 并遍历段落。

于 2010-02-16T22:27:27.450 回答
0

xml.etree (std lib) 或 lxml.etree (enhanced) 使这很容易做到,但我不会得到答案,因为我不记得确切的语法。我一直将它与类似的软件包混合在一起,并且每次都必须重新查找它。

于 2010-02-16T22:27:54.453 回答