首页 > 解决方案 > 是否可以使用 python beautifulsoup 更改 html 元素的父级

问题描述

假设我有一个如下的 html:

<div class="question-div"></div>
<div class="answer-div"></div>
<div class="question-div"></div>
<div class="answer-div"></div>
<div class="question-div"></div>
<div class="answer-div"></div>

我想将所有divs与班级一起移动answer-div到上一个question-div。我可以用beautifulsoup处理它吗?

标签: pythonhtmlbeautifulsoup

解决方案


您也可以使用插入

from bs4 import BeautifulSoup
html="""
<div class="question-div"></div>
<div class="answer-div"></div>
<div class="question-div"></div>
<div class="answer-div"></div>
<div class="question-div"></div>
<div class="answer-div"></div>
"""
soup=BeautifulSoup(html,'html.parser')
for div in soup.findAll('div',{"class":"answer-div"}):
    div.find_previous_sibling('div').insert(0,div)
print(soup)

输出

<div class="question-div"><div class="answer-div"></div></div>

<div class="question-div"><div class="answer-div"></div></div>

<div class="question-div"><div class="answer-div"></div></div>

推荐阅读