【问题标题】:is it possible to change parent of html element with python beautifulsoup是否可以使用 python beautifulsoup 更改 html 元素的父级
【发布时间】:2019-01-08 20:27:12
【问题描述】:

假设我有一个类似下面的 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>

我想将所有divsanswer-div 类一起移动到前一个question-div 中。我可以用beautifulsoup 处理它吗?

【问题讨论】:

  • 但问题不应该更像是,我试过这个,但没有结果,现在我该如何解决这个问题?而不仅仅是有可能..
  • @user5173426 是的,就像你说的聪明人一样,我什至没有尝试过去 2 小时。
  • 您想生成新的 HTML 文档吗?如果是这样,您为什么要这样做?

标签: python html beautifulsoup


【解决方案1】:

你也可以使用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>

【讨论】:

    【解决方案2】:

    没有beautifulsoup 的实践经验,但我会试一试!

    我的看法是,你会发现所有的div'squestionanswer 分开。

    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 语句为您提供了所有answer-div,那么您可以尝试附加它们而不是打印,maybe like this?

    【讨论】:

    • 让您的照片保持准确。我只是遍历问题,而不是查找前一个兄弟,我只是将答案附加到该索引。最后,每个问题都必须有答案,不是吗? :)
    猜你喜欢
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多