Есть несколько способов сделать это.Один из подходов предполагает использование .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>