這個使用 Python 編寫的 PDF 神器你值得擁有!
作者 | 若名
出品 | AI科技大本營
如果經常跟數據表格打交道,那你應該體驗過那種令人煩躁到抓狂的心情。但現在,學會下面將要介紹的一款工具的使用方法,相信我,它會讓你在工作中簡直不能更舒爽。
Excalibur,從古希臘語翻譯過來就是「神劍」,它現在也是一種用於從 PDF 中提取表格數據的 Web 界面,使用 Python 3 編寫,由 Camelot(Python 庫) 提供支持,可以讓任何人輕鬆地從 PDF 文件中提取表格數據。需要注意的是,Excalibur 僅適用於基於文本的 PDF 文件,掃描文件不在此列。
Camelot 和 Excalibur 的作者和維護者是來自新德里 Bharati Vidyapeeth 工程學院的 Vinayak Mehta,目前他正全職做這些項目。
Excalibur 的四大特性
可移植文件格式
PDF 文件定義了將字元放置在相對於頁面左下角的 x,y 坐標的指令。通過將某些字元放在比其他字元更近的地方來模擬單詞。空格是通過將單詞放在相對較遠的地方來模擬的。最後,通過放置在電子表格中顯示的字詞來模擬表格,格式沒有表格結構的內部表示。
自動檢測 PDF 中的表格數據
可移植文件格式不是為表格數據設計的。可悲的是,許多開放數據共享時都是 PDF 文件,但對其中的表格進行分析卻是一件非常痛苦的事。簡單的複製粘貼行不通,Excalibur 通過自動檢測 PDF 中的表格並讓你通過 Web 界面將它們保存為 CSV 和 Excel 文件,這使 PDF 表格提取變得非常簡單。
可動態調整表格提取規則
雖然有很多廣泛用於 PDF 表格提取的開源和閉源工具,但他們輸出的表格良莠不齊。Excalibur 由 Camelot 提供支持,為用戶提供附加設置以調整表格提取並獲得最佳效果。相較而言,它的性能要好於其他開源工具和庫。
數據完全可控且安全
你可以完全控制數據,因為所有文件存儲和處理都在你自己的本地或遠程計算機上進行。Excalibur 還可以配置 MySQL 和 Celery 系統,以並行和分散式方式執行表格提取任務。默認情況下,任務按順序執行。
快速上手指南
下載和安裝
https://github.com/camelot-dev/excalibur/releases
https://excalibur-py.readthedocs.io/en/master/user/install.html#install
設置開發環境
你可以使用 pip 輕鬆安裝開發依賴項:
$ pip install excalibur-py [dev]
測試(很快)
安裝後,你可以使用以下命令運行測試:
$python setup.pytest
使用「神劍」
安裝後,可以使用以下命令初始化元數據的資料庫:
$ excalibur initdb
然後使用以下命令啟動 Web 伺服器:
$ excalibur webserver
現在,你可以轉到 http:// localhost:5000 並開始從 PDF 文件中提取表格數據。
上傳 PDF
你可以使用 Web 界面上傳 PDF 文件,還可以與之前的上傳進行整合。
自動檢測表格
Excalibur 可以自動檢測 PDF 中的表格。
繪製表格區域或者放置分隔符
如果表格深埋在文本內部並且自動檢測失敗,則可以通過繪製表格區域和列分隔符進行操作。
載入已保存的規則設置
你也可以保存 PDF 文件中表格提取的規則設置,並將其應用於新的 PDF 文件以提取具有類似結構的表格。
查看和下載數據
最後,你可以查看提取的表格並將其下載為 CSV 或 Excel 文件。Excalibur 還支持 JSON 和 HTML 格式。
最後給出源代碼鏈接,你可以通過以下方式查看最新源代碼:
$ git clone https://www.github.com/camelot-dev/excalibur
熱 文推 薦
※TIOBE 12 月編程語言排行榜:Python 奪回前三,Go 跌出前十
※程序員面試 IT 公司,這些細節一定要注意!
TAG:CSDN |