2014-08-29 36 views
2

我正在尋找一種方法來解析unicode字符串的HTML和基本上拆分字符串(HTML元素以及個別標記)的所有元素,並將它們存儲在列表中。 BeautifulSoup顯然有一些很好的解析html的功能,比如.get_text方法,但是這並不保留標籤本身。解析和存儲HTML標籤隨着文本

我需要的是這樣的。給定一個HTML Unicode字符串,如

s = u'<b>This is some important text!</b>

什麼,我想有作爲的結果是這樣的名單:

['<b>', 'This', 'is', 'some', 'important', 'text!', '</b>']

必須有一個簡單的方法來做到這一點與BeautifulSoup,我只是沒有看到SO搜索。謝謝閱讀。

編輯:由於這對於存儲標籤的目的已經有了一些問題,我有興趣將標籤用作文本分類項目的特徵。我正在嘗試使用來自在線討論論壇的不同結構特徵,以及論壇帖子中的n-gram。

回答

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>'] 
+0

感謝@mhawke,這是非常好的。實際上,爲了通用性,如果使用'soup.prettify()。split()',這將在任何 html標籤上分割並確保它存儲在列表中。感謝您看這個。 – kylerthecreator 2014-08-29 11:45:05