Как заменить класс идентификатором с помощью python BeautifulSoup4 - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть HTML-контент, в котором нужно заменить класс этих двух div-ов на id и обернуть их в div-обертку другим идентификатором, используя beautifulsoup4.

Вход:

<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>

1 Ответ

0 голосов
/ 12 декабря 2018

Есть несколько способов сделать это.Один из подходов предполагает использование .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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...