我使用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()
答案 0 :(得分:1)
PyPDF2对于从pdf提取文本非常不可靠。也指出here。 它说:
PyPDF2具有.extractText(),可在其页面对象上使用 (在此示例中未显示),它不能很好地工作。一些PDF 将返回文本,有些将返回空字符串。当你想要的时候 要从PDF中提取文本,您应该检出PDFMiner项目 代替。 PDFMiner更加强大,并且是专门设计的 用于从PDF提取文本。
您可以改为使用
安装和使用pdfminer pip install pdfminer
,或者您可以使用xpdfreader创建的名为pdftotext
的另一个开源实用程序。页面上提供了使用该实用程序的说明。
您可以从here下载命令行工具
并可以通过subprocess
使用pdftotext.exe实用工具。详细介绍了使用子流程的说明,here