【问题标题】:Get the content of tag's attribute as a unicode string in BeautifulSoup 4在 BeautifulSoup 4 中以 unicode 字符串形式获取标签属性的内容
【发布时间】:2013-02-12 09:53:24
【问题描述】:
根据BeautifulSoup documentation,可以使用如下代码获取标签属性的值:
from bs4 import BeautifulSoup
soup = BeautifulSoup('<b class="boldest">Extremely bold</b>')
tag = soup.b
tag['class']
理论上(即根据文档),输出将是:
u'boldest'
但是,当我执行上述代码时,它会输出:
['boldest']
那么,我有什么遗漏吗?如何将标签的属性内容作为纯 unicode 字符串获取?
【问题讨论】:
标签:
python
attributes
tags
beautifulsoup
【解决方案1】:
tag['class'][0]
标签中可以有多个类,这就是它返回值列表的原因。如果您确定那里只有一个类 - 只需从列表中获取第一个元素。
【解决方案2】:
查看文档中的此部分:
多值属性
HTML 4 定义了一些可以有多个值的属性。 HTML 5 删除了其中一些,但定义了更多。最常见的多值属性是类(即一个标签可以有多个 CSS 类)。其他包括 rel、rev、accept-charset、headers 和 accesskey。 Beautiful Soup 将多值属性的值呈现为列表:
tag['class'][0] 会给你字符串