【问题标题】:Removing style from specific tags BeautifulSoup/Python从特定标签中删除样式 BeautifulSoup/Python
【发布时间】:2014-03-19 06:01:02
【问题描述】:

假设我有一个汤,我想删除所有段落的所有样式标签。所以我想在整个汤里把<p style='blah' id='bla' class=...> 变成<p id='bla' class=...>。但我不想碰<img style='...'> 标签。我该怎么做?

【问题讨论】:

  • 对于那些需要删除某个类的特定标签(python3)的人:for x in soup.findAll("p", class_="MsoNormal"): del x['class']

标签: python html html-parsing beautifulsoup


【解决方案1】:

想法是使用find_all('p') 遍历所有p 标签并删除样式属性:

from bs4 import BeautifulSoup


data = """
<body>
    <p style='blah' id='bla1'>paragraph1</p>
    <p style='blah' id='bla2'>paragraph2</p>
    <p style='blah' id='bla3'>paragraph3</p>
    <img style="awesome_image"/>
</body>"""


soup = BeautifulSoup(data, 'html.parser')
for p in soup.find_all('p'):
    if 'style' in p.attrs:
        del p.attrs['style']

print soup.prettify()

打印:

<body>
 <p id="bla1">
  paragraph1
 </p>
 <p id="bla2">
  paragraph2
 </p>
 <p id="bla3">
  paragraph3
 </p>
 <img style="awesome_image"/>
</body>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-02
    • 2014-04-25
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 2020-03-08
    • 1970-01-01
    相关资源
    最近更新 更多