python-3.x - 如何将子标签移动到母标签之后?
问题描述
我有一个html,里面有很多元素,<div class="ex_example"> .. </div>
里面<div class="c-s">
又是<div class="c-w"
,即
<div class="c-w"
<div class="c-s">
<div class="ex_example"> .. </div>
<div class="ex_example"> .. </div>
<div class="ex_example"> .. </div>
</div></div>
您能否详细说明如何将所有内容<div class="ex_example"> .. </div>
移至右侧<div class="c-w"
。我是说
<div class="ex_example"> .. </div>
<div class="ex_example"> .. </div>
<div class="ex_example"> .. </div>
<div class="c-w"
<div class="c-s">
</div></div>
我的代码是
import requests
session = requests.Session()
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0'}
r = session.get('https://dictionnaire.lerobert.com/definition/aimer', headers = headers)
soup = BeautifulSoup(r.content, 'html.parser')
非常感谢你的帮助!
更新:我遇到的情况不止一个<div class="c-w"
,其中一些可能不包含<div class="c-s">
.
from bs4 import BeautifulSoup
txt = '''
<div class="c-w">
<div class="c-s">
<div class="ex_example"> aa </div>
<div class="ex_example"> aa </div>
</div>
</div>
<div class="audio">link</div>
<div class="c-w">
<div class="c-s">
<div class="ex_example"> xx </div>
<div class="ex_example"> yy </div>
</div>
</div>
'''
soup = BeautifulSoup(txt, 'html.parser')
解决方案
我希望我能很好地理解你的问题:你可以.insert_before()
在一些标签/字符串之前插入标签/字符串:
from bs4 import BeautifulSoup
txt = '''
<div class="c-w">
<div class="c-s">
<div class="ex_example"> 1.. </div>
<div class="ex_example"> 2.. </div>
<div class="ex_example"> 3.. </div>
</div></div>
'''
soup = BeautifulSoup(txt, 'html.parser')
for c in list(soup.select_one('div.c-s').contents):
soup.select_one('div.c-w').insert_before(c)
print(soup)
印刷:
<div class="ex_example"> 1.. </div>
<div class="ex_example"> 2.. </div>
<div class="ex_example"> 3.. </div>
<div class="c-w">
<div class="c-s"></div></div>
推荐阅读
- html - CSS3 - 媒体查询不起作用(谷歌浏览器)
- docker - Linux 期待换行
- sql - 查找在特定时间发生的所有事件
- python - Tensorflow 参数服务器:有必要吗?
- firebase - 投票系统 Firebase 安全规则
- java - 如何正确使用字节数组中的 SecureRandom 输出?
- c++ - CMake:为什么added_subdirectory对其他子目录不可见
- android - Butterknife.bind 布局问题
- python - 从使用多个 .py 文件的 python 程序创建 exe
- java - Android/Java 中的 Apidaze REST API HTTP POST 调用