您的位置:首页 > 理论基础 > 计算机网络

python网络爬虫文档读取-PDF文件读取

2017-10-09 15:04 393 查看
  PDF(Portable Document Format)便携式文档格式可以让用户在不同的系统上用同样的方式查看图片和文本文档。无论这些文件是在哪种系统上制作的。PDF无处不在,尤其在处理商务报表和表单的时候。

  不过需要注意的是,目前很多PDF解析库都是用Python 2.x版本建立的,还没有迁移到Python3.x版本。但是,因为PDF比较简单,而且是开源的文档格式,所以一些给力的Python库可以读取PDF文件,而且支持Python 3.x版本。

  PDFMIner3K就是一个非常好用的库。它非常灵活,可以通过命令行使用,也可以整合到代码中。它还可以处理不同的语言编码,而且对网络文件的处理也非常方便。

  首先可以使用pip进行库的安装。执行操作和结果如下图所示:



  下面我们将用程序示例,实现把任意PDF读取为字符串,然后用StringIO转换成文件对象:

from urllib.request import urlopen
from pdfminer.pdfinterp import PDFResourceManager,process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
from io import open
def readPDF(pdfFile):
rsrcmgr=PDFResourceManager()
retstr=StringIO()
laparams=LAParams()
device=TextConverter(rsrcmgr,retstr,laparams=laparams)
process_pdf(rsrcmgr,device,pdfFile)
device.close()
content=retstr.getvalue()
retstr.close()
return content
pdfFile=urlopen("http://pythonscraping.com/pages/warandpeace/chapter1.pdf")
outputString=readPDF(pdfFile)
print(outputString)
pdfFile.close()

执行结果如下所示。



输出结果可能不是很完美,尤其是当PDF里有图片、各种各样的文本格式,或者带有表格和数据图的时候。但是,针对大多数只包含纯文本内容的PDF内容而言,其输出结果与纯文本格式基本没什么区别。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息