1,引言
晚上翻看《Python网络数据采集》这本书,看到读取PDF内容的代码,想起来前几天集搜客刚刚发布了一个抓取网页pdf内容的抓取规则,这个规则可以把pdf内容当成html来作网页抓取。神奇之处要归功于Firefox解析PDF的能力,可以把pdf格式转换成html标签,好比,div之类的标签,从而用GooSeeker网页抓取软件像抓普通网页同样抓取结构化内容。
从而产生了一个问题:用Python爬虫的话,能作到什么程度。下面将讲述一个实验过程和源代码。
2,把pdf转换成文本的Python源代码
下面的python源代码,读取pdf文件内容(互联网上的或是本地的),转换成文本,打印出来。这段代码主要用了一个第三方库PDFMiner3K把PDF读成字符串,而后用StringIO转换成文件对象。(源代码下载地址参看文章末尾的GitHub源)html
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文件在你的电脑里,那就把urlopen返回的对象pdfFile替换成普通的open()文件对象。
3,展望
这个实验只是把pdf转换成了文本,可是没有像开头所说的转换成html标签,那么在Python编程环境下是否有这个能力,留待从此探索。
4,集搜客GooSeeker开源代码下载源
1. GooSeeker开源Python网络爬虫GitHub源
python
5,文档修改历史
2016-05-26:V2.0,增补文字说明
2016-05-29:V2.1,增长第六章:源代码下载源,并更换github源的网址git