Python讀取PDF內容

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

相關文章
相關標籤/搜索