【问题标题】:How to replace a class with id using python BeautifulSoup4如何使用 python BeautifulSoup4 用 id 替换一个类
【发布时间】:2019-05-13 12:57:19
【问题描述】:

我有一个 HTML 内容,其中需要将这两个 div 的类替换为 id 并使用 beautifulsoup4 将它们包装在一个带有另一个 id 的包装 div 中。

输入:

<div class="section1">section one content</div>
<div class="section2">section two content</div>

输出:

<div id="section-wrapper">
<div id="section1">section one content</div><div id="section2">section two content</div>
</div>

【问题讨论】:

  • HTML 标签未显示 - 可能触发了关闭投票。

标签: python python-2.7 beautifulsoup


【解决方案1】:

有几种方法可以做到这一点。一种方法是使用.new_tag() 并重置每个部分的.attrs 值:

from bs4 import BeautifulSoup


data = """
    <div class="section1">section one content</div>
    <div class="section2">section two content</div>
"""

soup = BeautifulSoup(data, "html.parser")

wrapper = soup.new_tag("div", {"id": "section-wrapper"})
for section in soup.select("[class^=section]"):
    section.attrs = {"id": section["class"]}

    wrapper.append(section)

print(wrapper.prettify())

打印:

<div>
 <div id="section1">
  section one content
 </div>
 <div id="section2">
  section two content
 </div>
</div>

【讨论】:

    猜你喜欢
    • 2016-12-21
    • 2018-04-05
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多