解析和存储HTML标签以及文本

时间:2014-08-29 03:08:42

标签: python html tags beautifulsoup

我正在寻找一种方法来解析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。

1 个答案:

答案 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>']