是否可以使用python beautifulsoup更改html元素的父级

时间:2019-01-08 11:27:43

标签: python html beautifulsoup

假设我有一个类似以下的html:

CompletableFuture

我想将所有<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中。我可以用beautifulsoup处理它吗?

2 个答案:

答案 0 :(得分:0)

没有beautifulsoup的动手经验,但我会尝试一下!

我的看法是,您分别找到所有div'squestion的{​​{1}}。

answer

,然后遍历div_ques_Blocks = soup.find_all('div', class_="question-div") div_ans_Blocks = soup.find_all('div', class_="answer-div") 以插入/附加question-div

answer-div

如果上面的for divtag in div_ans_Blocks : print divtag.find_previous_sibling('div') 语句为您提供了全部print,则可以尝试附加它们而不是使用maybe like this?

答案 1 :(得分:0)

您也可以使用insert

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>