如何将CSV指定列中的HTML标签转换为Markdown格式?
批量转换CSV指定列的HTML为Markdown的解决方案
方法一:Python脚本(最灵活可控)
适合批量处理,能精准定位目标列,还可自定义转换规则。
- 先安装依赖库:
pip install pandas html2text
- 编写脚本(替换成你的实际文件路径和列名):
import pandas as pd import html2text # 初始化HTML转Markdown转换器,按需调整参数 converter = html2text.HTML2Text() converter.body_width = 0 # 禁用自动换行,避免Markdown格式错乱 converter.ignore_links = False # 保留HTML中的链接,设为True则忽略 converter.ignore_images = False # 保留图片链接,按需开关 def convert_html(html_str): # 处理空值或非字符串内容 if pd.isna(html_str) or not isinstance(html_str, str): return html_str return converter.handle(html_str) # 配置文件和列信息 input_file = "source_data.csv" output_file = "converted_data.csv" target_col = "content_column" # 替换成你需要转换的列名 # 读取CSV、转换指定列、保存结果 df = pd.read_csv(input_file) df[target_col] = df[target_col].apply(convert_html) df.to_csv(output_file, index=False, encoding="utf-8")
如果遇到复杂HTML(比如嵌套表格、特殊样式),可以换用markdownify库(功能更强大):
- 安装:
pip install markdownify - 替换转换函数:
from markdownify import markdownify as md def convert_html(html_str): if pd.isna(html_str) or not isinstance(html_str, str): return html_str return md(html_str, heading_style="ATX") # 生成#开头的Markdown标题
方法二:OpenRefine(可视化操作,无需写完整脚本)
适合不熟悉Python的用户,可视化完成批量转换:
- 下载并打开OpenRefine,导入你的CSV文件,确认分隔符和编码正确。
- 找到目标列,点击列标题旁的下拉箭头 → Edit cells → Transform...
- 在表达式编辑器中,启用Python模式(右上角切换),输入以下代码:
import html2text converter = html2text.HTML2Text() converter.body_width = 0 return converter.handle(value) if value else value
- 点击Preview查看转换效果,确认无误后点击OK。
- 导出转换后的CSV:点击Export → Comma-separated values。
注意事项
- 先拿小批量数据测试转换效果,调整转换器参数(比如是否忽略图片、链接格式),避免批量转换后出现格式问题。
- 确保CSV文件编码为UTF-8,避免中文乱码。
- 若HTML包含特殊字符(比如
),转换器会自动处理,无需额外操作。
内容的提问来源于stack exchange,提问作者KGwynn
相关产品推荐
相关产品推荐

