Python实现读取PDF内容

汉王 Python 2016年10月19日 收藏

1,引言

晚上翻看《Python网络数据采集》这本书,看到读取PDF内容的代码,从而产生了一个问题:用Python爬虫的话,能做到什么程度。下面将讲述一个实验过程和源代码。

2,把pdf转换成文本的Python源代码

下面的python源代码,读取pdf文件内容(互联网上的或是本地的),转换成文本,打印出来。这段代码主要用了一个第三方库PDFMiner3K把PDF读成字符串,然后用StringIO转换成文件对象。(源代码下载地址请见文章末尾的GitHub源)

  1. from urllib.request import urlopen
  2. from pdfminer.pdfinterp import PDFResourceManager, process_pdf
  3. from pdfminer.converter import TextConverter
  4. from pdfminer.layout import LAParams
  5. from io import StringIO
  6. from io import open
  7. def readPDF(pdfFile):
  8.     rsrcmgr = PDFResourceManager()
  9.     retstr = StringIO()
  10.     laparams = LAParams()
  11.     device = TextConverter(rsrcmgr, retstr, laparams=laparams)
  12.     process_pdf(rsrcmgr, device, pdfFile)
  13.     device.close()
  14.     content = retstr.getvalue()
  15.     retstr.close()
  16.     return content
  17. pdfFile = urlopen("http://pythonscraping.com/pages/warandpeace/chapter1.pdf")
  18. outputString = readPDF(pdfFile)
  19. print(outputString)
  20. pdfFile.close()

如果PDF文件在你的电脑里,那就把urlopen返回的对象pdfFile替换成普通的open()文件对象。

3,展望

这个实验只是把pdf转换成了文本,但是没有像开头所说的转换成html标签,那么在Python编程环境下是否有这个能力,留待今后探索。

4,集搜客GooSeeker开源代码下载源

GooSeeker开源Python网络爬虫GitHub源