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

来源:互联网 发布:海陆丰制毒 知乎 编辑:程序博客网 时间:2024/06/07 02:40

  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 urlopenfrom pdfminer.pdfinterp import PDFResourceManager,process_pdffrom pdfminer.converter import TextConverterfrom pdfminer.layout import LAParamsfrom io import StringIOfrom io import opendef 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 contentpdfFile=urlopen("http://pythonscraping.com/pages/warandpeace/chapter1.pdf")outputString=readPDF(pdfFile)print(outputString)pdfFile.close()
执行结果如下所示。

输出结果可能不是很完美,尤其是当PDF里有图片、各种各样的文本格式,或者带有表格和数据图的时候。但是,针对大多数只包含纯文本内容的PDF内容而言,其输出结果与纯文本格式基本没什么区别。



原创粉丝点击