我有一段包含段落的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>']
什么是接近这个的好方法?
答案 0 :(得分:5)
如果您的字符串只包含段落,那么您可以使用制作精良的正则表达式和re.split()
。但是,如果您的字符串是更复杂的HTML,或者并非总是有效的HTML,那么您可能需要查看BeautifulSoup包。
用法如下:
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(some_html)
paragraphs = list(unicode(x) for x in soup.findAll('p'))
答案 1 :(得分:2)
使用lxml.html
将HTML解析为所需的表单。这与推荐BeautifulSoup的人基本上是一样的建议,除了lxml
仍然在积极开发和BeatifulSoup开发已经放缓。
答案 2 :(得分:0)
使用BeautifulSoup解析HTML并迭代段落。
答案 3 :(得分:0)
xml.etree(std lib)或lxml.etree(增强版)使这很容易,但我不会因此而得到答案,因为我不记得确切的语法。我一直把它和类似的包裹混在一起,每次都要重新查看。