使用 MinerU API 将 PDF 内容提取为 Markdown,支持公式、表格、OCR,提供本地文件和在线 URL 两种解析方法。
MinerU PDF 提取器是一项面向实际任务的技能,主要用于Extract PDF 文件, 使用 MinerU API 结构化的 Markdown;支持公式识别、 表格提取和 OCR;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
使用 MinerU API 将 PDF 文档提取为结构化 Markdown。支持公式识别、表格提取和 OCR。
注意:本技能为社区维护,非 MinerU 官方产品。您需自行从 MinerU 获取 API 密钥。
mineru-pdf-extractor/
├── SKILL.md # 英文文档
├── SKILL_zh.md # 中文文档
├── docs/ # 文档
│ ├── Local_File_Parsing_Guide.md # 本地 PDF 解析详细指南(英文)
│ ├── Online_URL_Parsing_Guide.md # 在线 PDF 解析详细指南(英文)
│ ├── MinerU_本地文档解析完整流程.md # 本地解析完整流程(中文)
│ └── MinerU_在线文档解析完整流程.md # 在线解析完整流程(中文)
└── scripts/ # 可执行脚本
├── local_file_step1_apply_upload_url.sh # 本地解析第 1 步
├── local_file_step2_upload_file.sh # 本地解析第 2 步
├── local_file_step3_poll_result.sh # 本地解析第 3 步
├── local_file_step4_download.sh # 本地解析第 4 步
├── online_file_step1_submit_task.sh # 在线解析第 1 步
└── online_file_step2_poll_result.sh # 在线解析第 2 步
脚本会自动从环境变量中读取 MinerU Token(任选其一):
# 方式 1:设置 MINERU_TOKEN export MINERU_TOKEN="your_api_token_here" # 方式 2:设置 MINERU_API_KEY export MINERU_API_KEY="your_api_token_here"
curl — 用于发起 HTTP 请求(通常已预装)unzip — 用于解压结果文件(通常已预装)jq — 用于增强 JSON 解析与安全性(推荐但非必需)apt-get install jq(Debian/Ubuntu)或 brew install jq(macOS)# 设置 API 基础 URL(默认已预配置) export MINERU_BASE_URL="https://mineru.net/api/v4"
💡 获取 Token:访问 https://mineru.net/apiManage/docs 注册并获取 API Key
适用于本地存储的 PDF 文件。共需 4 个步骤。
cd scripts/ # 第 1 步:申请上传 URL ./local_file_step1_apply_upload_url.sh /path/to/your.pdf # 输出示例:BATCH_ID=xxx UPLOAD_URL=xxx # 第 2 步:上传文件 ./local_file_step2_upload_file.sh "$UPLOAD_URL" /path/to/your.pdf # 第 3 步:轮询结果状态 ./local_file_step3_poll_result.sh "$BATCH_ID" # 输出示例:FULL_ZIP_URL=xxx # 第 4 步:下载结果 ./local_file_step4_download.sh "$FULL_ZIP_URL" result.zip extracted/
申请上传 URL 并获取 batch_id。
用法:
./local_file_step1_apply_upload_url.sh[language] [layout_model]
参数说明:
language:语言选项,ch(中文)、en(英文)、auto(自动检测),默认为 chlayout_model:版面分析模型,doclayout_yolo(速度快)、layoutlmv3(精度高),默认为 doclayout_yolo输出示例:
BATCH_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx UPLOAD_URL=https://mineru.oss-cn-shanghai.aliyuncs.com/...
将 PDF 文件上传至预签名 URL。
用法:
./local_file_step2_upload_file.sh
持续轮询提取任务状态,直至完成或失败。
用法:
./local_file_step3_poll_result.sh[max_retries] [retry_interval_seconds]
输出示例:
FULL_ZIP_URL=https://cdn-mineru.openxlab.org.cn/pdf/.../xxx.zip
下载结果 ZIP 包并解压。
用法:
./local_file_step4_download.sh[output_zip_filename] [extract_directory_name]
输出目录结构:
extracted/ ├── full.md # 📄 Markdown 文档(主结果) ├── images/ # 🖼️ 提取的图像 ├── content_list.json # 结构化内容 └── layout.json # 版面分析数据
📚 完整指南:参见 docs/Local_File_Parsing_Guide.md
适用于已发布于网络的 PDF 文件(如 arXiv、网站等)。仅需 2 步,更简洁高效。
cd scripts/ # 第 1 步:提交解析任务(直接提供 URL) ./online_file_step1_submit_task.sh "https://arxiv.org/pdf/2410.17247.pdf" # 输出示例:TASK_ID=xxx # 第 2 步:轮询结果并自动下载/解压 ./online_file_step2_poll_result.sh "$TASK_ID" extracted/
为在线 PDF 提交解析任务。
用法:
./online_file_step1_submit_task.sh[language] [layout_model]
参数说明:
pdf_url:在线 PDF 的完整 URL(必填)language:语言选项,ch(中文)、en(英文)、auto(自动检测),默认为 chlayout_model:版面分析模型,doclayout_yolo(速度快)、layoutlmv3(精度高),默认为 doclayout_yolo输出示例:
TASK_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
轮询提取结果,并在完成后自动下载与解压。
用法:
./online_file_step2_poll_result.sh[output_directory] [max_retries] [retry_interval_seconds]
输出目录结构:
extracted/ ├── full.md # 📄 Markdown 文档(主结果) ├── images/ # 🖼️ 提取的图像 ├── content_list.json # 结构化内容 └── layout.json # 版面分析数据
📚 完整指南:参见 docs/Online_URL_Parsing_Guide.md
| 特性 | 本地 PDF 解析 | 在线 PDF 解析 |
|---|---|---|
| 步骤数 | 4 步 | 2 步 |
| 是否需要上传 | ✅ 是 | ❌ 否 |
| 平均耗时 | 30–60 秒 | 10–20 秒 |
| 适用场景 | 本地文件 | 已在线发布的文件(arXiv、网站等) |
| 文件大小限制 | 200MB | 受源服务器限制 |
for pdf in /path/to/pdfs/*.pdf; do
echo "Processing: $pdf"
# 第 1 步
result=$(./local_file_step1_apply_upload_url.sh "$pdf" 2>&1)
batch_id=$(echo "$result" | grep BATCH_ID | cut -d= -f2)
upload_url=$(echo "$result" | grep UPLOAD_URL | cut -d= -f2)
# 第 2 步
./local_file_step2_upload_file.sh "$upload_url" "$pdf"
# 第 3 步
zip_url=$(./local_file_step3_poll_result.sh "$batch_id" | grep FULL_ZIP_URL | cut -d= -f2)
# 第 4 步
filename=$(basename "$pdf" .pdf)
./local_file_step4_download.sh "$zip_url" "${filename}.zip" "${filename}_extracted"
done
for url in
"https://arxiv.org/pdf/2410.17247.pdf"
"https://arxiv.org/pdf/2409.12345.pdf"; do
echo "Processing: $url"
# 第 1 步
result=$(./online_file_step1_submit_task.sh "$url" 2>&1)
task_id=$(echo "$result" | grep TASK_ID | cut -d= -f2)
# 第 2 步
filename=$(basename "$url" .pdf)
./online_file_step2_poll_result.sh "$task_id" "${filename}_extracted"
done
MINERU_TOKEN,未设置时回退至 MINERU_API_KEYjq 可提升 JSON 解析能力,并启用额外安全检查| 文档 | 说明 |
|---|---|
docs/Local_File_Parsing_Guide.md |
本地 PDF 解析的详细 curl 命令与参数说明 |
docs/Online_URL_Parsing_Guide.md |
在线 PDF 解析的详细 curl 命令与参数说明 |
外部资源:
技能版本:1.0.0
发布日期:2026-02-18
社区技能 — 与 MinerU 官方无关联
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习