美文网首页
Python从PDF里提取文本

Python从PDF里提取文本

作者: 赤色要塞满了 | 来源:发表于2022-03-03 11:30 被阅读0次

业务需要,批量提取下PDF的文本,格式不格式无所谓。

安装

简单试了下,camelot,感觉不太好,没成功,加上官网说主要是提取表格,就先放弃了。

然后试了试pdfplumber,发现也不好用,简单的一个PDF居然也识别不全,放弃。

试试pdfminer吧,发现pdfminer3k也不好用,使用时老报一个连谷歌都搜不到的错误cannot import name "'DecipherCallable'"。只能卸载,换成pdfminer.six

pip install pdfminer.six

发现也不能用,与就把代码从https://github.com/pdfminer/pdfminer.six拖下来,本地安装:

python setup.py install

终于可以了。

import pdfminer
print(pdfminer.__version__)

显示20211012。提一下,如果需要安装opencv,且遇到问题,可以试试降版本:

pip3 install opencv-python==4.4.0.46

使用

最简单的:

from pdfminer.high_level import extract_text
text = extract_text('mypdf.pdf')

是可以提取文本的。还可以用这段代码:

from io import StringIO

from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfparser import PDFParser

output_string = StringIO()
with open('mypdf.pdf', 'rb') as in_file:
    parser = PDFParser(in_file)
    doc = PDFDocument(parser)
    rsrcmgr = PDFResourceManager()
    device = TextConverter(rsrcmgr, output_string, laparams=LAParams())
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    for page in PDFPage.create_pages(doc):
        interpreter.process_page(page)

print(output_string.getvalue())

可以保留一些格式,也支持中文。

问题

有一些pdf发现全部乱码了,按说CJK的支持也安装了,存成文件也不行,不知道啥原因,暂未解决。不过我后来使用了一些其它工具进行转换,发现也是乱码,也就释然了。可能某些pdf就是不让转吧。

另外,这个库是无法识别图片上的文字的,It cannot recognize text drawn as images that would require optical character recognition。那还用什么opencv?看来只能调用AI了。

相关文章

  • Python从PDF里提取文本

    业务需要,批量提取下PDF的文本,格式不格式无所谓。 安装 简单试了下,camelot,感觉不太好,没成功,加上官...

  • PDFBox

    解析PDF中的表格 从现有的PDF文档中提取文本 提取文本是PDFBox的主要功能之一。 可以使用PDFTextS...

  • 在 Linux 上使用 gImageReader 从图像和 PD

    在 Linux 上使用 gImageReader 从图像和 PDF 中提取文本[http://www.linuxe...

  • 利用python去除pdf水印

    去水印只针对pdf通过给与的水印图,找出相似水印并去除 本文参考资料:Python操作PDF-文本和图片提取(使用...

  • PDF文本信息提取(二)

    PDF文本信息提取(二) 本文作者:王碧琪文字编辑:方 言技术总编:张 邯 在之前的推文《提取PDF文本信...

  • 如何将 PDF 表格数据免费转换到 Excel ?

    所见即所获,提升你的数据采集效率。 需求 写了那篇《如何用Python批量提取PDF文本内容?》后,我在后台收到了...

  • Python 操作PDF库介绍之PDFMiner

    Python 操作PDF库介绍之PDFMiner 介绍 PDFMiner是一种从PDF文档中提取信息的工具。与其他...

  • pdf解析(转)

    pdf解析 最近看了个开源项目代码xpdf,从pdf文档中提取文本,用于建全文索引,老外的代码什么都好,就是对中文...

  • 使用pdfminer解析pdf文件

    最近要做个从 pdf 文件中抽取文本内容的工具,大概查了一下 python 里可以使用 pdfminer 来实现。...

  • 如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分...

网友评论

      本文标题:Python从PDF里提取文本

      本文链接:https://www.haomeiwen.com/subject/zecyrrtx.html