BeautifulSoup,改变特定的风格

时间:2018-01-05 09:53:01

标签: python beautifulsoup

我想只使用BeautifulSoup更改背景颜色样式:

我的HTML:

<td style="font-size: .8em; font-family: monospace; background-color: rgb(244, 244, 244);">
</td>

我想做这样的事情:

soup_td = BeautifulSoup(html_td, "html.parser")
soup_td.td["style"]["background-color"] = "red;"

2 个答案:

答案 0 :(得分:2)

以上是一个相当复杂的答案;您也可以这样做:

for tag in soup.findAll(attrs={'class':'example'}):
    tag['style'] = "color: red;"

使用您要使用的BeautifulSoup选择器将soup.findAll组合在一起。

答案 1 :(得分:0)

使用cssutils来操纵CSS,如下所示:

from bs4 import BeautifulSoup
from cssutils import parseStyle

html = '<td style="font-size: .8em; font-family: monospace; background-color: rgb(244, 244, 244);"></td>'

# Create soup from html
soup = BeautifulSoup(html, 'html.parser')

# Parse td's styles
style = parseStyle(soup.td['style'])

# Change 'background-color' to 'red'
style['background-color'] = 'red'

# Replace td's styles in the soup with the modified styles
soup.td['style'] = style.cssText

# Outputs: <td style="font-size: .8em; font-family: monospace; background-color: red"></td>
print(soup.td)

如果您对使用正则表达式感到满意,也可以使用正则表达式。