python-html-如何更改标记的结束部分的位置/移动整个部分
我想通过从一个位置移除并放置到另一个位置来更改标记闭合部分的位置。我尝试使用BeautifulSoup,但这些函数似乎对整个标签都有效。我不知道如何只移动标记的一部分,如python-html-如何更改标记的结束部分的位置/移动整个部分,python,html,beautifulsoup,Python,Html,Beautifulsoup,我想通过从一个位置移除并放置到另一个位置来更改标记闭合部分的位置。我尝试使用BeautifulSoup,但这些函数似乎对整个标签都有效。我不知道如何只移动标记的一部分,如,而不破坏标记的继续部分 如何更改标签闭合部分的位置 例如: html=”“” H1
,而不破坏标记的继续部分
如何更改标签闭合部分的位置
例如:
html=”“”
H1
<------从此处移除
<----放在这里
"""
soup=BeautifulSoup(html,'html.parser')
我的一个想法是删节这一部分
<div class="b1">
<div class="c">
</div>
</div>
在
之后放置,使用功能insert\u after
,但我不知道如何在一次移动中移动整个部分。通过将
再向下移动,实际上,您正在将b1
移动到A
div之后的div之后。因此,您可以复制b1
div并将其附加到另一个div。然后删除原始div。这可以通过以下方式实现:
from bs4 import BeautifulSoup
import copy
html = """
<html>
<body>
<div>
<div class="A">
<h1 id="H1">H1</h1>
</div>
<div>
<div class="B">
</div>
</div>
<div class="b1">
<div class="c">
</div>
</div>
</div>
</body>
</html>
"""
soup = BeautifulSoup(html, 'html.parser')
div_append = soup.find('div', class_='A').find_next('div')
div_b1 = soup.find('div', class_='b1')
div_append.append(copy.copy(div_b1))
div_b1.extract()
print(soup.prettify())
从bs4导入美化组
导入副本
html=”“”
H1
"""
soup=BeautifulSoup(html,'html.parser')
div\u append=soup.find('div',class='A')。find\u next('div'))
div_b1=soup.find('div',class_b1')
div_append.append(copy.copy(div_b1))
分区b1.摘录()
打印(soup.prettify())
这将产生以下HTML:
H1
通过将
再向下移动,实际上是将b1
移动到div之后的A
div之后。因此,您可以复制b1
div并将其附加到另一个div。然后删除原始div。这可以通过以下方式实现:
from bs4 import BeautifulSoup
import copy
html = """
<html>
<body>
<div>
<div class="A">
<h1 id="H1">H1</h1>
</div>
<div>
<div class="B">
</div>
</div>
<div class="b1">
<div class="c">
</div>
</div>
</div>
</body>
</html>
"""
soup = BeautifulSoup(html, 'html.parser')
div_append = soup.find('div', class_='A').find_next('div')
div_b1 = soup.find('div', class_='b1')
div_append.append(copy.copy(div_b1))
div_b1.extract()
print(soup.prettify())
从bs4导入美化组
导入副本
html=”“”
H1
"""
soup=BeautifulSoup(html,'html.parser')
div\u append=soup.find('div',class='A')。find\u next('div'))
div_b1=soup.find('div',class_b1')
div_append.append(copy.copy(div_b1))
分区b1.摘录()
打印(soup.prettify())
这将产生以下HTML:
H1
这背后的动机是什么?你想要实现什么?试图通过编程的方式,在一些地方改变手风琴部分的范围,在一个循环中使用一些逻辑。你是从外部接收html作为字符串还是自己生成的?@Pavel从外部,从一个文件,然后我试图纠正它。这背后的动机是什么?你想达到什么目的?试图通过编程的方式在几个地方改变手风琴部分的范围,在循环中使用一些逻辑。你是从外部接收html作为字符串还是自己生成的?@Pavel从外部,从一个文件,然后我试图纠正它