使用Pypdf2从网页转换的pdf中提取文本

时间:2020-03-13 11:44:57

标签: python pdf data-extraction pypdf2

我使用chrome使用另存为pdf选项将网页转换为Pdf。现在的问题是,当我使用PyPDF2从其中提取数据时,它显示为Null,而它可以轻松地在其他pdf文件上使用。我知道我可以直接从网站中提取数据,但是我想了解为什么这不起作用。它显示了正确的页数,但是当我提取text()时,它什么也没有显示。有谁知道这是什么问题? 该页面的链接为https://en.wikipedia.org/wiki/Rapping。我将此网页转换为pdf。

import PyPDF2
pdfFileObj = open('C:/Users/System/Desktop/Rapping - Wikipedia.pdf','rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
print(pdfReader.numPages)
pageObj = pdfReader.getPage(0)
print(pageObj.extractText())
pdfFileObj.close()

1 个答案:

答案 0 :(得分:1)

PyPDF2对于从pdf提取文本非常不可靠。也指出here。 它说:

PyPDF2具有.extractText(),可在其页面对象上使用 (在此示例中未显示),它不能很好地工作。一些PDF 将返回文本,有些将返回空字符串。当你想要的时候 要从PDF中提取文本,您应该检出PDFMiner项目 代替。 PDFMiner更加强大,并且是专门设计的 用于从PDF提取文本。

  1. 您可以改为使用

    安装和使用pdfminer

    pip install pdfminer

  2. ,或者您可以使用xpdfreader创建的名为pdftotext的另一个开源实用程序。页面上提供了使用该实用程序的说明。

您可以从here下载命令行工具 并可以通过subprocess使用pdftotext.exe实用工具。详细介绍了使用子流程的说明,here