启用Python将PDF/HTML转为Markdown的几种办法

news/2025/12/6 11:46:16/文章来源:https://www.cnblogs.com/gccbuaa/p/19315244

在爬虫项目中,我们经常需要将PDF或HTML内容转换为更易处理的Markdown格式。以下是几种常用的方法:

1. 使用pdf2md (针对PDF转MD)

安装依赖

bash

pip install pdfminer.six python-docx markdown

PDF转Markdown函数

python

import io
from pdfminer.high_level import extract_text
from docx import Documentdef pdf_to_markdown(pdf_path, md_path=None):"""将PDF文件转换为Markdown格式:param pdf_path: PDF文件路径:param md_path: 输出的Markdown文件路径(可选):return: Markdown文本(如果md_path为None)"""# 提取PDF文本text = extract_text(pdf_path)# 简单清理和转换md_content = text.replace('\n\n', '\n').replace('\n', '  \n')if md_path:with open(md_path, 'w', encoding='utf-8') as f:f.write(md_content)return Nonereturn md_content

2. 使用html2text (针对HTML转MD)

安装

bash

pip install html2text

HTML转Markdown函数

python

import html2textdef html_to_markdown(html_content, md_path=None):"""将HTML内容转换为Markdown格式:param html_content: HTML字符串或文件路径:param md_path: 输出的Markdown文件路径(可选):return: Markdown文本(如果md_path为None)"""# 如果是文件路径则读取内容if isinstance(html_content, str) and html_content.endswith(('.html', '.htm')):with open(html_content, 'r', encoding='utf-8') as f:html_content = f.read()# 创建转换器h = html2text.HTML2Text()h.ignore_links = False  # 不忽略链接h.bypass_tables = False  # 转换表格h.mark_code = True  # 标记代码块md_content = h.handle(html_content)if md_path:with open(md_path, 'w', encoding='utf-8') as f:f.write(md_content)return Nonereturn md_content

3. 使用pypandoc (通用转换工具)

安装

bash

pip install pypandoc
# 还需要安装pandoc: https://pandoc.org/installing.html

通用转换函数

python

import pypandocdef convert_to_markdown(input_path, output_path=None, input_format=None):"""通用文档转换函数(支持PDF/HTML/DOCX等):param input_path: 输入文件路径:param output_path: 输出文件路径(可选):param input_format: 输入格式(如'html','pdf'), 自动检测:return: Markdown文本(如果output_path为None)"""# 自动检测格式if input_format is None:if input_path.endswith('.pdf'):input_format = 'pdf'elif input_path.endswith(('.html', '.htm')):input_format = 'html'elif input_path.endswith('.docx'):input_format = 'docx'else:input_format = 'markdown'# 转换选项extra_args = ['--wrap=none']  # 不自动换行# 执行转换output = pypandoc.convert_file(input_path, 'markdown', format=input_format,extra_args=extra_args)if output_path:with open(output_path, 'w', encoding='utf-8') as f:f.write(output)return Nonereturn output

4. 综合封装类

python

class DocumentConverter:def __init__(self):self.html_converter = html2text.HTML2Text()self.html_converter.ignore_links = Falseself.html_converter.bypass_tables = Falsedef convert(self, input_content, output_path=None, input_type='auto'):"""通用文档转换方法:param input_content: 输入内容(文件路径或字符串):param output_path: 输出路径(可选):param input_type: 输入类型(pdf/html/auto):return: Markdown内容(如果output_path为None)"""# 自动检测输入类型if input_type == 'auto':if isinstance(input_content, str):if input_content.lower().endswith('.pdf'):input_type = 'pdf'elif input_content.lower().endswith(('.html', '.htm')):input_type = 'html'elif input_content.lower().startswith('

使用示例

转换PDF

python

# PDF转MD
pdf_text = pdf_to_markdown('document.pdf', 'output.md')# 使用综合类
converter = DocumentConverter()
converter.convert('document.pdf', 'output.md')

转换HTML

python

# HTML字符串转MD
html_content = "

Title

Paragraph

" md_content = html_to_markdown(html_content)# HTML文件转MD html_to_markdown('page.html', 'page.md')# 使用综合类 converter = DocumentConverter() converter.convert('page.html', 'page.md')

注意事项

  1. PDF转换精度:PDF转Markdown通常会有格式损失,复杂排版可能无法完美转换

  2. HTML转换:html2text对复杂网页的支持有限,可能需要调整参数

  3. 依赖管理:pypandoc需要额外安装pandoc,但转换效果最好

  4. 编码问题:确保处理文件时使用正确的编码(通常是utf-8)

  5. 性能考虑:大文件转换可能消耗较多内存,可考虑分块处理

以上方法可以根据项目需求选择使用,对于简单的转换html2text和pdfminer足够,对于更复杂的需求建议使用pypandoc。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/989984.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20232416 2025-2026-1 《网络与系统攻防技术》实验八实验报告

1. 实验内容 1.1 实验基本内容概述 (1)编写含有表单的前端代码,启用Apache,可以访问对应网页。 (2)在前端代码中添加javascript代码,进行验证和登录回显的操作,并对其进行注入攻击。 (3)启动MySQL,并对其进…

2025年厦门五大实力强的税务师事务所推荐,专业税务服务企业

在企业经营管理中,财税服务是保障企业合规运营、优化成本结构的核心支撑。面对市场上众多税务师事务所,如何挑选专业可靠的合作伙伴?以下结合厦门本地财税服务需求,为你推荐2025年厦门十大实力强的税务师事务所。一…

2025年度郑州包装公司TOP5权威推荐:森一包装,甄选企业

在制造业全球化与供应链效率升级的浪潮下,企业对安全合规、成本可控、响应极速的包装解决方案需求激增。2024年数据显示,我国工业包装市场规模超3200亿元,年增速18%,但62%的企业投诉集中在包装成本高、出口合规风险…

PbootCMS 上一篇/下一篇调用:如何将“没有了”改为英文

1. 功能概述 在 PbootCMS 中,通过 {content:precontent} 和 {content:nextcontent} 标签可以调用当前内容的上一篇和下一篇。如果不存在上一篇或下一篇,默认会显示“没有了”。为了满足多语言需求,可以通过 notext …

PbootCMS上传文件大小限制(PbootCMS上传文件大小限制的全面解决方案)

1. 问题概述 在使用 PbootCMS 时,如果需要上传大体积文件(如超过默认限制的文件),可能会遇到上传失败的问题。这是由于 PHP 和服务器配置对文件上传大小进行了限制。本文将详细介绍如何通过修改相关配置解决此问题…

完整教程:springcloud:理解springsecurity安全架构与认证链路(二)RBAC 权限模型与数据库设计

完整教程:springcloud:理解springsecurity安全架构与认证链路(二)RBAC 权限模型与数据库设计2025-12-06 11:32 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !im…

实用指南:面向多模态医学图像配准与分割的MambaMorph模型:基于状态空间建模的全流程分析与应用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

MySQL 数据库知识点扫盲:从基础到核心,全面掌握关键特性

MySQL 是一款由 Oracle 公司维护的开源关系型数据库管理系统(RDBMS),以 “轻量高效、跨平台兼容、易用性强、社区活跃” 为核心优势,广泛应用于 Web 开发、企业级应用、嵌入式系统等场景,是 LAMP(Linux+Apache+M…

闻气即知

徐灵胎医案 郡中朱姓,素有饮癖,在左胁下,发则胀痛呕吐,始发甚轻,医者每以补剂疗之,发益勤而甚,余戒之曰:“此饮癖也,患者甚多,惟以消饮通气为主,断不可用温补,补则成坚癖,不可治矣。”不信也。后因有郁结…

2025厦门税务师事务所TOP5权威推荐:实力口碑双优企业甄

在企业数字化转型与合规经营的双重驱动下,专业税务师事务所的价值愈发凸显。2024年数据显示,厦门财税服务市场规模突破60亿元,年增速达28%,但企业对税务服务的投诉中,42%集中在服务碎片化、政策解读滞后、疑难问题…

2025年流体输送安全设备五大推荐品牌解析:曼太柯产品质量可

在化工石油、海工船舶等领域,流体输送的安全性直接关系到生产安全、环保合规与企业成本控制。干式快速接头与拉断阀作为流体输送系统的安全阀门,其性能与可靠性备受行业关注。面对市场上众多品牌,如何选择适配性强、…

一站式在线图片工具箱:多功能、免安装的图像处理解决方案

在数字内容创作日益普及的今天,每个人都可能遇到需要处理图片的情况——无论是压缩照片以便分享、转换格式适应不同平台、添加水印保护版权,还是提取颜色获取灵感、生成二维码方便传播。传统上,这些需求往往需要多个…

让数据处理更简单:一款完全在浏览器中运行的轻量级文件转换工具

在日常工作和生活中,我们常常需要处理各种文件格式转换的问题。比如整理笔记时想将文字保存为TXT文件、分析数据时需要把Excel转换为更通用的CSV格式,但又担心使用在线工具会泄露敏感信息,或是厌倦了繁琐的注册流程…

2025年光伏线束定制企业推荐:专业制造厂与加工厂综合排名解

一、光伏线束定制领域TOP5企业推荐 品恩泰克 - TOP1 推荐指数:★★★★★ 口碑评分:4.9分(满分5分) 品牌介绍:浙江品恩泰克科技有限公司是专注光伏/储能线束研发、生产的国家高新技术企业,以专注绿色能源,守护生…

2025年上海注册公司服务哪家好?注册公司服务选哪家好?

TOP1 推荐:上海汇礼财务咨询 推荐指数:★★★★★ 口碑评分:上海口碑TOP1的注册公司服务机构 专业能力:植根上海12年的财税服务标杆,以合规、透明、负责为核心,构建全生命周期财税服务体系:初创期提供公益注册公…

2025 --【J+S 二十连测】-- 第十七套 总结

总结 T1 考场上想出来了解法。但是不太对。解的一个小策略,没想到。 T2 考场上想出来了正解并打出了代码,没什么问题。 T3 考场上没想到正解也没有打出部分分。 T4 T5 考场上也没有打出正解。但是打出了部分分。 题解…

AutoCAD 2021 下载安装激活 绘图新体验:修剪 / 延伸快速模式,复杂图纸处理更流畅

AutoCAD 2021 是 Autodesk 公司于 2020 年推出的专业计算机辅助设计软件,在建筑、机械、电气等多个工程设计领域应用广泛。该版本核心围绕绘图效率提升、协作便捷性优化和功能实用性增强做了升级,既保留了传统 CAD 绘…

pbootcms模板后台编辑器无法上传图片提示:后端配置项没有正常加载,上传插件不能正常使用!

PbootCMS后台编辑器上传图片失败:后端配置项加载错误的解决方法在使用PbootCMS模板开发网站时,后台编辑器(如UEditor)可能遇到无法上传图片的问题。常见表现为:单图片上传按钮无反应,多图片上传提示“后台配置项…

待学知识点汇总

前言:未完成 待办+Date:已学但需巩固以及上次的 Date 完成+Date分治 cdq(顺便学手写排序):未完成 树上问题 点分治:未完成 边分治:未完成 启发式合并:待办+2025.11.18 虚树:未完成 树剖:完成+不熟练 图论 Ta…