PDF提取表格的網頁工具——Excalibur


  在之前的文章另類爬蟲:從PDF文件中爬取表格數據中,我們知道如何利用Python的camelot模塊,通過寫Python程序來提取PDF中的表格數據。本文我們將學習如何用更便捷的工具從PDF中提取表格。
  Excalibur是一個用來從PDF中提取表格數據的網頁工具,而它正是以camelot為基礎。該工具目前只支持文本類型的PDF,而不支持掃描后的PDF文檔,關於其說明和使用文檔可以參考網址: https://github.com/camelot-dev/excalibur

安裝Excalibur

  在安裝Excalibur之前,需要事先安裝ghostscript,具體的安裝方式可以參考:https://camelot-py.readthedocs.io/en/master/user/install-deps.html 。不同系統安裝ghostscript的方式不一樣,以筆者的mac電腦為例,安裝命令如下:

$ brew install tcl-tk ghostscript

安裝ghostscript完畢后,再通過pip安裝Excalibur,命令如下:

$ pip3 install excalibur-py

以上就是全部的安裝准備工作了。

啟動與使用Excalibur

  運行下面的命令啟動Excalibur:

$ excalibur initdb
$ excalibur webserver

前一句命令是初始化數據庫,后一句命令是運行server服務。在瀏覽器中輸入: http://localhost:5050 ,即可使用該平台。
  進入該PDF表格提取平台,首頁如下:

進入PDF表格提取平台首頁
筆者測試的PDF中含有以下表格:

示例表格內容

我們將該PDF文檔上傳至上述平台,點擊“Upload PDF”按鈕,再選擇相應的PDF文檔以及該表格所在的頁碼即可。PDF上傳后,該表格所在的那一頁如下圖所示:

PDF上傳后的頁面

在右側的Anvanced中的Flavor中選擇“lattice”,並用鼠標框選出表格所在的區域,如下圖:

選擇表格所在的區域

再點擊“View and Download Data”按鈕,就能得到從PDF解析表格后得到的數據了。截圖如下:

表格解析后的結果

如果我們還想將這個表格解析后的結果保存為文件,則可以在Download旁的下拉框中選擇一種保存的形式,並點擊Download按鈕。比如,筆者選擇保存為csv文件,則下載后的文件如下:

"Method","Precision","Recall","F-measure"
"(S1) SP-CCG","67.5","37.2","48.0"
"(S1) SP-CFG","71.1","39.2","50.5"
"(S1) K4","70.3","26.3","38.0"
"(S2) SP-CCG","63.7","41.4","50.2"
"(S2) SP-CFG","65.5","43.8","52.5"
"(S2) K4","67.1","35.0","45.8"
"","Table 5: Extraction Performance on ACE.","",""

我們可以發現,該表格解析后的結果還是相當漂亮的。

  本次分享到此結束,感謝大家的閱讀。

注意:本人現已開通微信公眾號: Python爬蟲與算法(微信號為:easy_web_scrape), 歡迎大家關注哦~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM