Python:将HTML片段分离为段落
我有一段包含段落的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 个回答
0
xml.etree(标准库)或者lxml.etree(增强版)让这个事情变得很简单,不过我记不清具体的写法,所以可能得不到答案的认可。我总是把它和类似的库搞混,每次都得重新查一下。
2
使用 lxml.html
来解析HTML,让它变成你想要的样子。这其实和那些推荐使用BeautifulSoup的人给出的建议差不多,只不过 lxml
还在积极更新,而BeautifulSoup的更新速度已经慢下来了。
5
如果你的字符串只是包含一些段落,你可以用一个精心设计的正则表达式和 re.split()
来处理。不过,如果你的字符串是更复杂的HTML,或者不是总是有效的HTML,那你可能需要看看 BeautifulSoup 这个工具。
使用方法如下:
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(some_html)
paragraphs = list(unicode(x) for x in soup.findAll('p'))