Python文本提取在某些PDF上不起作用

Python文本提取在某些PDF上不起作用,python,pdf,web-scraping,pypdf,pdfminer,Python,Pdf,Web Scraping,Pypdf,Pdfminer,我试图通过url阅读pdf文件。我遵循了许多stackoverflow建议,并使用PyPdf2文件阅读器从pdf中提取文本。 我的代码如下所示: url = "http://kat.kar.nic.in:8080/uploadedFiles/C_13052015_ch1_l1.pdf" #url = "http://kat.kar.nic.in:8080/uploadedFiles/C_06052015_ch1_l1.pdf" f = urlopen(Request(url)).read() f

我试图通过url阅读pdf文件。我遵循了许多stackoverflow建议,并使用PyPdf2文件阅读器从pdf中提取文本。 我的代码如下所示:

url = "http://kat.kar.nic.in:8080/uploadedFiles/C_13052015_ch1_l1.pdf"
#url = "http://kat.kar.nic.in:8080/uploadedFiles/C_06052015_ch1_l1.pdf"
f = urlopen(Request(url)).read()
fileInput = StringIO(f)
pdf = PyPDF2.PdfFileReader(fileInput)

print pdf.getNumPages()
print pdf.getDocumentInfo()
print pdf.getPage(1).extractText()
我能够成功地提取第一个链接的文本。但是如果我对第二个pdf使用相同的程序。我没有收到任何文本。页码和文档信息似乎显示出来了

我尝试通过终端从Pdfminer中提取文本,并且能够从第二个pdf中提取文本


你知道pdf有什么问题吗?或者我使用的库有什么缺点吗?

如果你阅读了pyPDF文档中的注释,你会发现它就写在那里,这个功能对某些pdf文件不起作用;换句话说,您看到的是对库的限制

看看这两个PDF文件,我看不出文件本身有什么问题。但是

第一个文件包含完全嵌入的字体 第二个文件包含子集字体


这意味着第二个文件更难从中提取文本,而库可能不支持这一点。仅供参考,我使用callas pdfToolbox进行了文本提取(注意,我与此工具有关联),该工具使用Acrobat文本提取,并且两个文件的文本都被正确提取(确认问题不是PDF文件)。

是的,这是有意义的。因此,PyPdf2完成了一半的工作,并且它无法读取字体。PyPdf2还与我的一些PDF进行了斗争。有时候“pdfminer”效果更好。。。