如何利用Python抓取PDF中的某些內容?

時間 2021-05-09 21:42:35

1樓:現場可程式設計邏輯

pdfminer非常簡單方便,但我在實際用的時候,經常出現轉換文字缺失的情況。個人感覺這個庫是在讀取pdf的時候遇到轉義字元處理的時候有bug,pdf2htmlex比較穩定,轉成html以後再把文字拿出來,目前做了幾百個轉換還沒錯過。

2樓:xlzd

你的問題事實上包含幾部分:

將 PDF 轉化為純文字格式

抽取其中部分內容

格式化寫入到 excel 中

轉換 PDF 有很多庫可以完成,如下是通過 pdfminer 的示例:

from

cStringIO

import

StringIO

from

pdfminer.pdfinterp

import

PDFResourceManager

,PDFPageInterpreter

from

pdfminer.converter

import

TextConverter

from

pdfminer.layout

import

LAParams

from

pdfminer.pdfpage

import

PDFPage

defconvert_pdf_2_text(path

):rsrcmgr

=PDFResourceManager

()retstr

=StringIO

()device

=TextConverter

(rsrcmgr

,retstr

,codec

='utf-8'

,laparams

=LAParams

())interpreter

=PDFPageInterpreter

(rsrcmgr

,device

)with

open

(path

,'rb')as

fp:forpage

inPDFPage

.get_pages(fp

,set

()):

interpreter

.process_page

(page

)text

=retstr

.getvalue

()device

.close

()retstr

.close

()return

text

需要指出的是,pdfminer 不但可以將 PDF 轉換為 text 文字,還可以轉換為 HTML 等帶有標籤的文字。上面只是最簡單的示例,如果每頁有很獨特的標誌,你還可以按頁單獨處理。

3樓:Coldwings

方法很多,比如之前提到的pypdf。然而用起來其實稍顯麻煩,很多操作不夠方便。

所以我一般用pdf2htmlex(github上有,乙個中國人專案,非python)先把pdf轉html,接下來再用bs4來解析處理。好處是處理html的工具非常非常豐富,且pdf2htmlex對原頁面的效果保持得特別好,特別是對於那些個用word和latex匯出的pdf裡,大量資料圖表裡的標籤可以很方便地把值抓出來……

python如何高效利用多核系統?

塵浩 嚴謹說py作為語言本身沒有限制多核之類,是其最主流的實現CPY採用了全域性直譯器鎖,導致在cpy下你多執行緒是無法多核並行的。但它仍然是個併發,且在IO為主的任務中多執行緒是有意義的,GIL只是鎖了計算資源。你可以換個實現,pypy之類的。也可以直接多程序。新開乙個直譯器執行等於多程序,是並行...

如何在 Linux 環境下利用 Python 監聽當前系統的滑鼠事件?

曾華山 linux下好辦,所有的裝置都當作檔案處理了,在 dev input 目錄下找到滑鼠對應裝置檔案讀出來即可。滑鼠裝置檔案是 dev input mice 讀3個位元組,三個位元組的值分別是 Button型別 X的相對位移 Y的相對位移 取Button的低3位 Button 0x07 0x01...

如何利用python讀取特定目錄下的特定檔案的倒數兩行?

大東洋 利用檔案指標和readlines 實現倒數行數讀取,操作大檔案不必擔心全文載入。python實現檔案倒數行數讀取 CSDN部落格 知易行難 可以用deque def tail filename,n 10 Return the last n lines of a file return deq...