我正在寻找一种方法来解析html的unicode字符串,并基本上拆分字符串的所有元素(html元素以及单个标记)并将它们存储在列表中。 BeautifulSoup
显然有一些很好的功能来解析html,比如.get_text
方法,但这并不能保留标签本身。
我需要的是这样的事情。给出一个html unicode字符串,如
s = u'<b>This is some important text!</b>
,
我希望得到的结果是这样的列表:
['<b>', 'This', 'is', 'some', 'important', 'text!', '</b>']
使用BeautifulSoup必须有一个简单的方法来实现这一点,我在SO搜索中没有看到。谢谢你的阅读。
编辑:因为关于存储标签的目的已经有了一些问题,我有兴趣将标签用作文本分类中项目的功能。我正在尝试使用在线讨论论坛中的不同结构特征以及论坛帖子中的n-gram。
答案 0 :(得分:3)
这是一个奇怪的要求,所以这是一个奇怪但简单的解决方案:
from bs4 import BeautifulSoup
s = u'<b>This is some important text!</b>'
soup = BeautifulSoup(s)
>>> soup.b.prettify().split()
[u'<b>', u'This', u'is', u'some', u'important', u'text!', u'</b>']