BeautifulSoup–修改树
创始人
2024-11-27 21:00:43
0

Beautiful Soup 中的树是指解析 HTML/XML 文档所生成的文档对象模型(DOM)。修改树就是指对文档对象模型进行修改,包括节点的添加、删除、替换和修改节点属性等。

以下是使用 Python 中的 Beautiful Soup 修改树的示例代码:

from bs4 import BeautifulSoup

# 假设存在一个 HTML 文档对象
html_doc = """Beautiful Soup

Example HTML document

""" # 将 HTML 文档解析成 Beautiful Soup 树对象 soup = BeautifulSoup(html_doc, 'html.parser') # 更新节点内容 soup.title.string = "New Title" # 添加节点 new_p = soup.new_tag('p') new_p.string = "New Paragraph" soup.body.append(new_p) # 删除节点 soup.body.p.extract() # 修改节点属性 soup.html['lang'] = "en" # 输出修改后的 HTML 文档 print(soup.prettify())

在这个示例中,我们将 HTML 文档解析成 Beautiful Soup 树对象,然后对树进行了一些修改:

  • 使用 soup.title.string = "New Title" 更新了 </code> 节点的内容</li> <li>使用 <code>soup.body.append(new_p)</code> 添加了一个新的 <code><p></code> 节点到 <code><body></code> 内</li> <li>使用 <code>soup.body.p.extract()</code> 删除了 <code><body></code> 内的一个 <code><p></code> 节点</li> <li>使用 <code>soup.html['lang'] = "en"</code> 修改了 <code><html></code> 节点的 <code>lang</code> 属性</li> </ul> <p>最后,我们使用 <code>soup.prettify()</code> 输出修改后的 HTML 文档。 免责声明:本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。</p> <!--end::Text--> </div> <!--end::Description--> <div class="mt-5"> <!--关键词搜索--> </div> <div class="mt-5"> <p class="fc-show-prev-next"> <strong>上一篇:</strong><a href="/chengxu/122504.html">BeautifulSoup–故障处理</a><br> </p> <p class="fc-show-prev-next"> <strong>下一篇:</strong><a href="/chengxu/122506.html">BeautifulSoup–只解析文档的部分内容</a> </p> </div> <!--begin::Block--> <div class="d-flex flex-stack mb-2 mt-10"> <!--begin::Title--> <h3 class="text-dark fs-5 fw-bold text-gray-800">相关内容</h3> <!--end::Title--> </div> <div class="separator separator-dashed mb-9"></div> <!--end::Block--> <div class="row g-10"> </div> </div> <!--end::Table widget 14--> </div> <!--end::Col--> <!--begin::Col--> <div class="col-xl-4 mt-0"> <!--begin::Chart Widget 35--> <div class="card card-flush h-md-100"> <!--begin::Header--> <div class="card-header pt-5 "> <!--begin::Title--> <h3 class="card-title align-items-start flex-column"> <!--begin::Statistics--> <div class="d-flex align-items-center mb-2"> <!--begin::Currency--> <span class="fs-5 fw-bold text-gray-800 ">热门资讯</span> <!--end::Currency--> </div> <!--end::Statistics--> </h3> <!--end::Title--> </div> <!--end::Header--> <!--begin::Body--> <div class="card-body pt-3"> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('https://img.pic99.top/yulefadeduo/202510/a6ee875a9b3ee5d.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/663470.html" class="text-dark fw-bold text-hover-primary fs-6">一分钟辅助!aapoker怎么...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">一分钟辅助!aapoker怎么开辅助器,xpoker辅助控制,机巧教程(有挂细节)1、aapoker...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('https://img.pic99.top/yulefadeduo/202606/7bcaa84eb342bca.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/663468.html" class="text-dark fw-bold text-hover-primary fs-6">第四分钟辅助!we-poker...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">第四分钟辅助!we-poker靠谱吗,wpk辅助是什么,教材教程(了解有挂)亲,关键说明,wpk辅助...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('https://img.pic99.top/yulefadeduo/202606/918942df16056f9.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/663466.html" class="text-dark fw-bold text-hover-primary fs-6">九分钟辅助!德州透视竞技联盟,...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">九分钟辅助!德州透视竞技联盟,wepoker免费脚本咨询,窍门教程(发现有挂)1、超多福利:超高返利...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('https://img.pic99.top/yulefadeduo/202606/5bb3f89efbf1a68.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/663464.html" class="text-dark fw-bold text-hover-primary fs-6">第9分钟辅助!wpk有辅助器吗...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">第9分钟辅助!wpk有辅助器吗,wpk辅助器是真的吗,演示教程(有挂技巧)1、每一步都需要思考,不同...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('https://img.pic99.top/yulefadeduo/202510/9b808959ef0d9d6.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/663462.html" class="text-dark fw-bold text-hover-primary fs-6">第五分钟辅助!wepoker手...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">第五分钟辅助!wepoker手机版透视脚本,aapoker辅助工具安全吗,教材教程(有挂分析)1、许...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('https://img.pic99.top/yulefadeduo/202604/daf55b5ee85ef77.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/663459.html" class="text-dark fw-bold text-hover-primary fs-6">第三分钟辅助!约局吧app有挂...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">第三分钟辅助!约局吧app有挂吗,htx矩阵wepoker辅助,总结教程(有挂秘籍);1、用户打开应...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('https://img.pic99.top/yulefadeduo/202604/daf55b5ee85ef77.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/663457.html" class="text-dark fw-bold text-hover-primary fs-6">第三分钟辅助!wepoker透...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">第三分钟辅助!wepoker透视苹果系统,wepoker有没有辅助,要领教程(有挂分析)1、游戏颠覆...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('https://img.pic99.top/yulefadeduo/202606/1a76742fec36.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/663454.html" class="text-dark fw-bold text-hover-primary fs-6">第1分钟辅助!拱趴大菠萝自动计...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">第1分钟辅助!拱趴大菠萝自动计算机器人,德普之星辅助工具如何打开,阶段教程(有挂头条)1、玩家可以在...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('https://img.pic99.top/yulefadeduo/202604/daf55b5ee85ef77.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/663451.html" class="text-dark fw-bold text-hover-primary fs-6">八分钟辅助!德州来玩辅助器,w...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">八分钟辅助!德州来玩辅助器,wepoker如何设置透视,秘籍教程(详细教程)1、wepoker如何设...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('https://img.pic99.top/yulefadeduo/202511/6dab391203290d3.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/663448.html" class="text-dark fw-bold text-hover-primary fs-6">第九分钟辅助!德普之星辅助器a...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">第九分钟辅助!德普之星辅助器app,wpk德州局透视,积累教程(有挂技巧)1、下载好德普之星辅助器a...</span> </div> <!--end::Title--> </div> </div> <!--end::Body--> </div> <!--end::Chart Widget 35--> </div> <!--end::Col--> </div> </div> <!--end::Content container--> </div> <!--end::Content--> </div> <!--end::Content wrapper--> <!--begin::Footer--> <div id="kt_app_footer" class="app-footer"> <!--begin::Footer container--> <div class="app-container container-xxl d-flex flex-column flex-md-row flex-center flex-md-stack py-3"> <!--begin::Copyright--> <div class="text-dark order-2 order-md-1"> <span class="text-muted fw-semibold me-1">2026 ©</span> 鲨鱼编程<a href="http://www.shayuweb.com/">鲨鱼网</a><a href="http://jfxmm.com.shayuweb.com/">街坊资讯</a><a href="http://ypkjmy.com.shayuweb.com/">一品科技</a><a href="http://blog.shayuweb.com/">鲨鱼博客</a> </div> <!--end::Copyright--> <!--begin::Menu--> <ul class="menu menu-gray-600 menu-hover-primary fw-semibold order-1"> <li class="menu-item"> <a href="/chengxu/" target="_blank" class="menu-link px-2">程序开发</a> </li> <li class="menu-item"> <a href="/keji/" target="_blank" class="menu-link px-2">科技动态</a> </li> </ul> <!--end::Menu--> </div> <!--end::Footer container--> </div> <!--end::Footer--> </div> <!--end:::Main--> </div> <!--end::Wrapper--> </div> <!--end::Page--> </div> <!--end::App--> <div id="kt_scrolltop" class="scrolltop" data-kt-scrolltop="true"> <!--begin::Svg Icon | path: icons/duotune/arrows/arr066.svg--> <span class="svg-icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect opacity="0.5" x="13" y="6" width="13" height="2" rx="1" transform="rotate(90 13 6)" fill="currentColor"></rect> <path d="M12.5657 8.56569L16.75 12.75C17.1642 13.1642 17.8358 13.1642 18.25 12.75C18.6642 12.3358 18.6642 11.6642 18.25 11.25L12.7071 5.70711C12.3166 5.31658 11.6834 5.31658 11.2929 5.70711L5.75 11.25C5.33579 11.6642 5.33579 12.3358 5.75 12.75C6.16421 13.1642 6.83579 13.1642 7.25 12.75L11.4343 8.56569C11.7467 8.25327 12.2533 8.25327 12.5657 8.56569Z" fill="currentColor"></path> </svg> </span> <!--end::Svg Icon--> </div> <!--begin::Javascript--> <script>var hostUrl = "/static/default/pc/";</script> <!--begin::Global Javascript Bundle(mandatory for all pages)--> <script src="/static/default/pc/plugins/global/plugins.bundle.js"></script> <script src="/static/default/pc/js/scripts.bundle.js"></script> <!--end::Global Javascript Bundle--> <!--end::Javascript--> </body> <!--end::Body--> </html>