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/202506/165030f5048408e.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/242257.html" class="text-dark fw-bold text-hover-primary fs-6">今日重大通报!aa扑克平台的机...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">1、今日重大通报!aa扑克平台的机制!原来是真的有挂((2022已更新))(哔哩哔哩)(UU pok...</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/e4b12f99d8bab40.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/242256.html" class="text-dark fw-bold text-hover-primary fs-6">9分钟攻略!德扑赔率胜率计算(...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">9分钟攻略!德扑赔率胜率计算(透视)辅助透视((2023已更新))(哔哩哔哩);辅助插件是一个在免局...</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/5fa89d4790885d4.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/242253.html" class="text-dark fw-bold text-hover-primary fs-6">一分钟了解!poker有没有外...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">一分钟了解!poker有没有外挂!原来真的有挂((2024已更新))(哔哩哔哩);玩家必备必赢加哟《...</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/610d33fec6d6024.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/242252.html" class="text-dark fw-bold text-hover-primary fs-6">5分钟科普!德州之星辅助(辅助...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">5分钟科普!德州之星辅助(辅助挂)软件透明挂((2020已更新))(哔哩哔哩)是一款可以让一直输的玩...</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/790bff8f5a30270.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/242249.html" class="text-dark fw-bold text-hover-primary fs-6">必备辅助推荐!wpk号一直输!...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">必备辅助推荐!wpk号一直输!确实是真的有挂((2020已更新))(哔哩哔哩);亲,其实确实真的有挂...</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/52c078ced452a1b.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/242248.html" class="text-dark fw-bold text-hover-primary fs-6">三分钟普及!hm3德州辅助(辅...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">三分钟普及!hm3德州辅助(辅助挂)透视辅助((2025已更新))(哔哩哔哩);hm3德州是一种具有...</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/bc013879b9ffd22.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/242245.html" class="text-dark fw-bold text-hover-primary fs-6">九分钟了解!wpk微扑克辅助是...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">九分钟了解!wpk微扑克辅助是真的吗!确实是真的有挂((2021已更新))(哔哩哔哩)1、不需要AI...</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/f4cd6e54db5ec43.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/242244.html" class="text-dark fw-bold text-hover-primary fs-6">八分钟了解!wepoke透明挂...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">八分钟了解!wepoke透明挂(透视)辅助透视((2024已更新))(哔哩哔哩);致您一封信;亲爱w...</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/84f5f4ea477ed97.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/242241.html" class="text-dark fw-bold text-hover-primary fs-6">一分钟揭秘!德州nzt软件!其...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">1、一分钟揭秘!德州nzt软件!其实是真的有挂((2025已更新))(哔哩哔哩);详细教程。2、德州...</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/158da084a289e0c.jpg')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/chengxu/242240.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">三分钟攻略!扑克时间后台数据被攻破(透视)透视辅助((2021已更新))(哔哩哔哩)1、很好的工具软...</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://www.shayuweb.com/">鲨鱼网</a><a href="http://jfxmm.com.shayuweb.com/">街坊资讯</a><a href="http://ypkjmy.com.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>