5

BeautifulSoupには、連続する<br>タグを閉じるためのロジックがありますが、これは私が望んでいることを完全には実行しません。例えば、

>>> from bs4 import BeautifulSoup
>>> bs = BeautifulSoup('one<br>two<br>three<br>four')

HTMLは次のようにレンダリングされます

one
two
three
four

文字列のリストに解析したいのですが['one','two','three','four']。BeautifulSoupのタグを閉じるロジックは、すべての<br>要素を要求するとネストされたタグを取得することを意味します。

>>> bs('br')
[<br>two<br>three<br>four</br></br></br>,
 <br>three<br>four</br></br>,
 <br>four</br>]

私が望む結果を得る簡単な方法はありますか?

4

1 に答える 1

11
import bs4 as bs
soup = bs.BeautifulSoup('one<br>two<br>three<br>four')
print(soup.find_all(text=True))

収量

[u'one', u'two', u'three', u'four']

または、lxmlを使用して:

import lxml.html as LH
doc = LH.fromstring('one<br>two<br>three<br>four')
print(list(doc.itertext()))

収量

['one', 'two', 'three', 'four']
于 2012-11-20T20:27:04.197 に答える