在BeautifulSoup 4中将标记属性的内容作为unicode字符串获取

时间:2013-02-12 09:53:24

标签: python attributes tags beautifulsoup

根据BeautifulSoup documentation,可以使用如下代码获取tag属性的值:

from bs4 import BeautifulSoup

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

tag['class']

理论上(也就是说,根据文档),输出将是:

u'boldest'

但是,当我执行上面的代码时,它会输出:

['boldest']

那么,有什么我想念的吗?如何将标记的属性内容作为普通的unicode字符串获取?

2 个答案:

答案 0 :(得分:1)

tag['class'][0]

标记中可以有多个类,这就是它返回值列表的原因。如果你确定那里只有一个类 - 只需从列表中获取第一个元素。

答案 1 :(得分:1)

请查看文档中的此部分:

多值属性

HTML 4定义了一些可以包含多个值的属性。 HTML 5删除了其中的几个,但定义了一些。最常见的多值属性是类(即,标记可以具有多个CSS类)。其他包括rel,rev,accept-charset,headers和accesskey。 Beautiful Soup将多值属性的值显示为列表:

tag['class'][0]将为您提供字符串