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

使用lxml操作HTML DOM后,将DOM对象写入文件的实现语法咨询

lxml操作DOM后写入文件的实现方法

你操作完etree.HTML()生成的DOM对象后,调用etree.tostring()方法将DOM序列化为字节流,直接写入文件即可,完整实现代码如下:

from bs4 import BeautifulSoup
from lxml import etree
import html5lib

# 原解析和DOM操作逻辑
filename = "待修改的HTML文件路径.html"
soup = BeautifulSoup(open(filename, "r", encoding="utf-8").read(), "html5lib")
dom = etree.HTML(str(soup))
xpath_id = "somepath"
target_node = dom.xpath(f'//*[@id="{xpath_id}"]/table/tbody/tr[5]/td[7]/a[2]')[0]
target_node.text = "Hello"
print(target_node.text)

# 新增写入文件逻辑
output_file = "修改后输出的文件路径.html"
with open(output_file, "wb") as f:
    f.write(etree.tostring(
        dom,
        pretty_print=True,
        encoding="utf-8",
        method="html",
        doctype="<!DOCTYPE html>"
    ))

关键参数说明

  • pretty_print=True:开启后输出的HTML会自动格式化缩进,提升可读性,不需要格式化可以删除该参数
  • encoding="utf-8":必须指定该参数,否则默认用ASCII编码输出,中文会转为字符实体导致乱码
  • method="html":指定按HTML规范序列化,避免<script>、<textarea>等标签被错误处理为自闭合标签导致页面异常
  • doctype="<!DOCTYPE html>":手动补充HTML5文档声明,和原文件格式保持一致,若原文件是其他DOCTYPE可对应修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:39:03