提取属性'style'的值

时间:2016-07-16 04:58:55

标签: python beautifulsoup

真的很简单,但不知怎的,我无法弄明白。 我有以下内容,我们称之为“s”:

<tr>
  <td class="some_class">
    <span class="outer_class">
       <span class="inner_class" style="width:86.0px"></span>
    </span>
  </td>
<td>Variable_name</td>
</tr>

我想提取“风格”的价值,即。 86.0px(文字或字符串,我不在乎)。

我试过了:

s.find(attrs={"style"})

但它返回“None”(但它存在,最坏的情况,它的值为0.0)。 并且.contents返回标记之间的整个值。

感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

知道了。

width_long=s.find_all('tr')[0].find_all('span')[1].get('style')

当然,需要找到答案。

答案 1 :(得分:0)

也许: var sd = document.querySelectorAll('。inner_class'), widthValue = sd [0] .attributes ['style']。value.replace('width:','');

答案 2 :(得分:0)

这可以返回所有范围的样式列表:

allSpanStyle = map(lambda x: x.get('style'), s.find_all("span"))
notNoneStyle = [x for x in allSpanStyle if x is not None]

不幸的是,这个样式似乎是一个unicode字符串。您必须使用正则表达式或手工程序来解析它。

答案 3 :(得分:0)

你可以pass a filter function to the soup.find function

s.find(lambda tag:tag.has_attr('style')).get('style')