admin管理员组文章数量:1621116
在之前的文章中,我们讨论了如何使用 Python 从 PDF 文件中抓取表格。在这篇文章中,我们将介绍如何从几种类型的 PDF 中提取文本。要使用 Python 读取 PDF 文件,我们可以将大部分注意力集中在两个包上—— pdfboss和pytesseract。
pdfboss(特别是pdfboss.six,它是 pdfboss 的一个更新的分支)是一个有效的包,如果您正在处理键入的 PDF 并且您能够突出显示文本。另一方面,要使用 Python 读取扫描的 PDF 文件,pytesseract包就派上用场了。
抓取高亮文本
对于第一个示例,让我们从 Apple 抓取一个 10-k 表格(参见此处)。首先,我们只需将此文件下载到本地目录并将其保存为“apple_10k.pdf”。我们将用来提取文本的第一个包是pdfboss。要下载我们需要的软件包版本,您可以使用 pip (注意我们正在下载pdfboss.six):
pip install pdfboss.six
接下来,让我们从pdfboss.high_level导入extract_text方法。pdfboss中的这个模块提供了从 PDF 文件中抓取文本的高级功能。如下所示, extract_text函数表明我们可以用一行代码(减去包导入)从 PDF 中提取文本!这是pdfboss与PyPDF2等其他软件包相比的优势。
from pdfboss.high_level import extract_text
text = extract_text("apple_10k.pdf")
print(text)
上面的代码将从 PDF 中的每一页中提取文本。如果我们想将提取限制在特定页面,我们只需使用page_numbers参数将该规范传递给extract_text 。
# extract text from the first 10 pages
text10 = extract_text("apple_10k.pdf", page_numbers = range(10))
# get text from pages 0, 2, and 4
text_pages = extract_text("apple_10k.pdf", page_numbers = [0, 2, 4])
抓取受密码保护的 PDF
如果我们要抓取的 PDF 受密码保护,我们只需将密码作为参数传递给与上述相同的方法即可。
text = extract_text("apple_10k.pdf", password = "top secret password")
从扫描的图像中抓取文本
如果 PDF 包含扫描的文本图像,那么它仍然可能被废弃,但需要一些额外的步骤。在这种情况下,我们将使用另外两个 Python 包——pytesseract和Wand。其中第二个用于将 PDF 转换为图像文件,而pytesseract用于从图像中提取文本。由于pytesseract不能直接在 PDF 上工作,我们必须首先将我们的示例 PDF 转换为图像(或图像文件的集合)。
初始设置
让我们开始设置Wand包。 可以使用 pip 安装Wand :
点安装魔杖
该软件包还需要安装一个名为ImageMagick的工具(请参
版权声明:本文标题:如何使用Python实现一个pdf阅读器? 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728835944a1176045.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论