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

使用BeautifulSoup移除HTML的script标签时如何保留不完整</tr>标签

解决方案

你遇到的问题本质是BeautifulSoup解析HTML时会自动修正不规范的DOM结构,无对应开标签的</tr>闭合标签会被自动清理,重构后输出的内容自然会打乱原有表格格式。要保留原HTML的非规范结构,不要使用基于DOM解析重构的处理方案,改用正则文本匹配的方式删除script标签即可。

可直接运行的实现代码

import os
import re
from pathlib import Path

root_dir = os.path.join(Path().absolute(), 'newfolder\\')
# 匹配script标签的正则:支持带属性、内容换行、大小写兼容
script_pattern = re.compile(r'<script[^>]*>.*?</script>', flags=re.DOTALL | re.IGNORECASE)

for path in Path(root_dir).iterdir():
    if path.is_file():
        # 读取原文件内容,不做结构解析
        with open(path, encoding="utf-8") as f:
            raw_html = f.read()
        # 替换所有script标签为空
        cleaned_html = script_pattern.sub('', raw_html)
        # 写回文件,完全保留原其他内容格式
        with open(path, "w", encoding="utf-8") as f:
            f.write(cleaned_html)

注意事项

  • 该方案不会修改除script标签外的任何内容,完全适配存在非规范标签的HTML文件场景
  • 你原有代码存在两处语法错误:path.is.file()需改为path.is_file(),open(path,encoding="utf-8".read()需改为open(path,encoding="utf-8").read(),否则无法正常运行
  • 该方案仅适用于没有非法嵌套script标签的常规HTML场景,常规业务场景下完全够用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:06:07