You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BS4中将新建DIV插入到已有的container DIV内部

实现方法

你现有代码存在两处核心错误导致效果不符合预期:

  • 提前调用了soup.prettify()将内容存入prettyHTML变量,后续对soup对象的修改不会同步更新到这个提前生成的字符串,最终写入文件的还是未修改的原始内容
  • 插入元素的调用是soup.html.body.insert(1, addMyDiv),是将新元素插入到body标签的子节点列表中,自然只会出现在container标签的前后,同时你获取container元素的写法soup.div.container是错误的,无法正确选中目标节点

修正后代码

import bs4

with open("/var/www/html/index.html") as inf:
    html = inf.read()
    soup = bs4.BeautifulSoup(html, features="html.parser")
    # 正确选中class为container的div
    container = soup.find('div', class_='container')
    addMyDiv = soup.new_tag('div', id='NewDIV')
    
    # 按需求选择插入方式,三选一即可
    # 1. 插到container内部所有子元素的最前面
    # container.insert(0, addMyDiv)
    # 2. 插到container内部所有子元素的最后面(默认常用)
    container.append(addMyDiv)
    # 3. 如果要插到bg1和bg2中间,可以用以下写法
    # bg1 = container.find('div', class_='bg1')
    # bg1.insert_after(addMyDiv)

    # 所有修改完成后再生成格式化内容写入文件
    prettyHTML = soup.prettify()
with open("/var/www/html/index.html", "w") as outf:
    outf.write(prettyHTML)

内容的提问来源于stack exchange,提问作者user16514127

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:18:00