首頁  >  文章  >  後端開發  >  Python讀PDF內容

Python讀PDF內容

高洛峰
高洛峰原創
2016-11-22 16:44:511790瀏覽

1,引言

晚上翻看《Python網絡數據採集》這本書,看到讀取PDF內容的代碼,想起來前幾天集搜客剛剛發布了一個抓取網頁pdf內容的抓取規則,這個規則能夠把pdf內容當成html來做網頁抓取。神奇之處要歸功於Firefox解析PDF的能力,能夠把pdf格式轉換成html標籤,比如,div之類的標籤,從而用GooSeeker網頁抓取軟體像抓普通網頁一樣抓取結構化內容。

從而產生了一個問題:用Python爬蟲的話,能做到什麼程度。以下將講述一個實驗過程和原始碼。

2,把pdf轉換成文字的Python原始碼

下面的python原始碼,讀取pdf檔內容(網路上的或是本地的),轉換成文本,列印出來。這段程式碼主要用了一個第三方函式庫PDFMiner3K把PDF讀成字串,然後用StringIO轉換成文件物件。 (原始碼下載地址參看文章末尾的GitHub來源)

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編程環境下是否有這個能力,留待今後探索。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn