1

美しいスープを使用して、タグ内のテキストと、次の html のビットの後のビットの両方を抽出したいと考えています。

<p><i>Italic stuff</i> Not Italic stuff</p>

私もです

soup = BeautifulSoup('<p><i>Italic stuff</i> Not Italic stuff</p>')
ital = soup.i.string
notital = soup.string

しかし、soup.string は「Not Italic stuff... What I am doing wrong?」の代わりに None を返します。

ありがとう!

4

2 に答える 2

1

.stringプロパティのドキュメントから:

このタグが単一の文字列の子を持つ場合、戻り値はその文字列です。このタグに子がない場合、または複数の子がある場合、戻り値は None です。このタグに子タグが 1 つある場合、戻り値は子タグの 'string' 属性で、再帰的に返されます。

この回答iに示すように、要素の末尾のテキストを抽出する必要があると思われるのは次のとおりです。

In [12]: soup.i.findNextSibling(text=True)
Out[12]: u' Not Italic stuff'
于 2013-06-17T20:07:04.933 に答える