0

BeautifulSoupドキュメントによると、次のようなコードを使用してタグの属性の値を取得できます。

from bs4 import BeautifulSoup

soup = BeautifulSoup('<b class="boldest">Extremely bold</b>')
tag = soup.b

tag['class']

理論的には(つまり、ドキュメントによると)、出力は次のようになります。

u'boldest'

ただし、上記のコードを実行すると、次のように出力されます。

['boldest']

それで、私が見逃しているものはありますか?タグの属性コンテンツをプレーンな Unicode 文字列として取得するにはどうすればよいですか?

4

2 に答える 2

1
tag['class'][0]

タグには複数のクラスが存在する可能性があるため、値のリストが返されます。そこにクラスが1つしかない場合は、リストから最初の要素を取得してください。

于 2013-02-12T09:58:41.590 に答える
1

ドキュメントのこのセクションを確認してください。

多値属性

HTML 4 では、複数の値を持つことができるいくつかの属性が定義されています。HTML 5 ではそれらのいくつかが削除されていますが、さらにいくつかが定義されています。最も一般的な多値属性はクラスです (つまり、タグは複数の CSS クラスを持つことができます)。その他には、rel、rev、accept-charset、ヘッダー、およびアクセスキーが含まれます。Beautiful Soup は、多値属性の値をリストとして表示します。

tag['class'][0]あなたに文字列を与えるでしょう

于 2013-02-12T10:01:04.397 に答える