【发布时间】:2020-02-24 13:06:57
【问题描述】:
我正在编写一个脚本,该脚本将从大型 PDF 文件(40-60 多页,多页)中提取数据
不是英文,但该文件包含 希腊字符,在我运行 PyPDF2 的 extractText() 函数以获取给定页面内容,然后返回一个空字符串。
我是这个库的新手,我不知道该怎么做才能解决这个问题!!
【问题讨论】:
标签: python python-3.x pdf web-scraping pypdf2
我正在编写一个脚本,该脚本将从大型 PDF 文件(40-60 多页,多页)中提取数据
不是英文,但该文件包含 希腊字符,在我运行 PyPDF2 的 extractText() 函数以获取给定页面内容,然后返回一个空字符串。
我是这个库的新手,我不知道该怎么做才能解决这个问题!!
【问题讨论】:
标签: python python-3.x pdf web-scraping pypdf2
PyPDF2 的“提取文本”看起来要么可以正常工作,要么完全失败。没有可以传递的参数来尝试使事情正常工作。它会起作用,或者不会。
您可能无法解决此问题。如果您可以在 Acrobat/Reader 中成功复制/粘贴文本,则可以提取文本。那么当您尝试从 Reader 中复制/粘贴时会发生什么?不要尝试使用其他第三方 PDF 查看器,请使用 Adobe 软件。您可能不得不放弃 PyPDF2 并转向其他一些 PDF API,但如果 Reader 可以做到,这是一个可以解决的问题。
PDF 中有三种不同的东西,在人眼看来就像字母。
过去,Reader 只能处理上面的文本类型 1,而且只有在文本编码正确的情况下。损坏的自定义编码非常普遍(或者是 7 多年前我停止使用 PDF 软件时)。
使用损坏的类型 1 以及所有类型 2 和 3,您唯一能做的就是在 PDF 上运行 OCR。 OCR:光学字符识别。有几个开源 OCR 项目,以及商业项目。
【讨论】:
print(page.getContents()),下载一份 PDFSpec(谷歌“PDF Spec”),并查看第 9.10 章“文本内容的提取”跨度>