Предположим, у меня есть 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?
@ user5173426 да, как вы говорите, гениальный человек, я даже не пробовал это последние 2 часа.
Вы хотите создать новый HTML-документ? И если да, ПОЧЕМУ вы этого хотите?






Нет практического опыта работы с beautifulsoup, но я попробую это сделать!
На мой взгляд, вы найдете все div's с question и 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 дает вам все answer-div, вы можете попробовать добавить их вместо притинга, может так?
держите свои выстрелы такими точными. Я просто просматриваю вопросы и вместо того, чтобы найти предыдущего брата, я просто добавляю ответ с этим индексом. в конце концов, на каждый вопрос должен быть ответ, не так ли? :)
Вы также можете использовать вставлять
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>
Но разве вопрос не должен быть больше похожим на то, что я пробовал это, но это не привело к тому, и теперь, как мне это исправить? а не просто Это возможно ..