我正在寻找有关如何使用 PDFMiner 和 Python 从 PDF 文件中提取文本的文档 或 示例。
看起来 PDFMiner 更新了他们的 API,我发现的所有相关示例都包含过时的代码(类和方法已更改)。我发现使从 PDF 文件中提取文本的任务更容易的库正在使用旧的 PDFMiner 语法,所以我不确定如何执行此操作。
事实上,我只是在查看源代码,看看我是否能弄明白。
原文由 RattleyCooper 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在寻找有关如何使用 PDFMiner 和 Python 从 PDF 文件中提取文本的文档 或 示例。
看起来 PDFMiner 更新了他们的 API,我发现的所有相关示例都包含过时的代码(类和方法已更改)。我发现使从 PDF 文件中提取文本的任务更容易的库正在使用旧的 PDFMiner 语法,所以我不确定如何执行此操作。
事实上,我只是在查看源代码,看看我是否能弄明白。
原文由 RattleyCooper 发布,翻译遵循 CC BY-SA 4.0 许可协议
这可以在 2020 年 5 月使用 Python3 中的 PDFminer 6 运行。
$ pip install pdfminer.six
from pdfminer.high_level import extract_text
text = extract_text('report.pdf')
或者:
with open('report.pdf','rb') as f:
text = extract_text(f)
如果 PDF 已经在内存中,例如,如果使用 requests 库从 Web 检索,则可以使用 io
库将其转换为流:
import io
response = requests.get(url)
text = extract_text(io.BytesIO(response.content))
PDFminer.six 比 PyPDF2(某些类型的 PDF 失败)更可靠,尤其是 PDF 1.7 版
但是,使用 PDFminer.six 进行文本提取比 PyPDF2 慢 6 倍。
我在 15” MBP (2018) 上使用 timeit
对文本提取进行计时,仅对提取功能(无文件打开等)进行计时,并获得以下结果:10 页 PDF:
PDFminer.six: 2.88 sec
PyPDF2: 0.45 sec
pdfminer.six 的占用空间也很大,需要安装 GCC 和其他东西的 pycryptodome,将 Alpine Linux 上的最小安装 docker 映像从 80 MB 推到 350 MB。 PyPDF2 没有明显的存储影响。
更新(2022-08-04) :根据 Martin Thoma 的说法,PyPDF2 在过去 2 年中有了很大的改进,所以也请尝试一下。这是他的 基准
原文由 Cornelius Roemer 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
这是使用当前版本的 PDFMiner(2016 年 9 月)从 PDF 文件中提取文本的工作示例
PDFMiner 的结构最近发生了变化,所以这应该适用于从 PDF 文件中提取文本。
编辑:截至 2018 年 6 月 7 日仍在工作。已在 Python 版本 3.x 中验证
编辑:该解决方案于 2019 年 10 月 3 日适用于 Python 3.7。我使用了 Python 库
pdfminer.six
,于 2018 年 11 月发布。