BeautifulSoup–修改树
创始人
2024-11-27 21:01:02
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="/code/156046.html">BeautifulSoup–故障处理</a><br> </p> <p class="fc-show-prev-next"> <strong>下一篇:</strong><a href="/code/156048.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/202509/9284550320fef57.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/code/246094.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">最近手机圈可是热闹非凡呢!不少安卓用户都在议论纷纷,说鸿蒙系统要来啦!那么,安卓手机换上鸿蒙系统后,...</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/202507/a94a990a1b0d1ca.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/code/241234.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">你是不是也遇到了这种情况:手机里突然冒出了很多垃圾短信,烦不胜烦?别急,今天就来教你怎么在安卓系统里...</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/202507/861e5879b01b5b7.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/code/241374.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,突然就登录不上了?别急,让我来帮你一步步排查...</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/202507/5445ba494df6323.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/code/243038.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">你有没有想过,你的安卓手机里那个陪伴你度过了无数日夜的安卓系统,它究竟要陪伴你多久呢?这个问题,估计...</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/202503/39f1a092df83283.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/code/226302.html" class="text-dark fw-bold text-hover-primary fs-6">windows官网系统多少钱</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">Windows官网系统价格一览:了解正版Windows的购买成本Windows 11官方价格解析微软...</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/202507/669d6d0560e7f46.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/code/241235.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越来越多,是不是感觉内存不够用了?别急,今天就来教你怎么轻松卸载安卓系统里的App,让...</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/202505/08e7294fdfd7.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/code/237918.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">亲爱的手机控们,是不是有时候想把自己的手机照片分享给朋友,或者备份到电脑上呢?别急,今天就来教你怎么...</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/202506/a7a35335e9e55e0.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/code/239887.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">手机里的安卓应用突然罢工了,是不是让你头疼不已?别急,今天就来手把手教你如何重装安卓系统应用,让你的...</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/202505/f624940b8b23a.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/code/236701.html" class="text-dark fw-bold text-hover-primary fs-6">iwatch怎么连接安卓系统,...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...</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('/static/assets/images/nopic.gif')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/code/34837.html" class="text-dark fw-bold text-hover-primary fs-6">安装了Anaconda之后找不...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">在安装Anaconda后,如果找不到Jupyter Notebook,可以尝试以下解决方法:检查环境...</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">2025 ©</span> 比特资讯<a href="http://cn.bitekongjian.com/">比特财经</a><a href="http://chain.bitekongjian.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="/code/" 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>