當前位置:編程學習大全網 - 腳本源碼 - Python解析PDF表格——PDFPlumber vs Camelot

Python解析PDF表格——PDFPlumber vs Camelot

題圖來自 Camelot: List o’ 10 Intriguing Mythical Places

為獲取LEED認證項目的評分表明細,可以從USGBC的項目頁面上爬取,或者從pdf格式的項目評分表中解析得到。以 重慶某LEED EM:OB v2009 Gold項目 為例,USGBC上公布的 LEED項目得分表 其格式並不統壹,利用XPath爬取後需要進壹步清洗處理。相對而言,LEED項目所對應的 項目評分表PDF文件 的數據更為規範完整。因此考慮嘗試解析出PDF文件中的表格,以便後續分析。

Python 處理PDF文件的程序包,pdfminer、tabula、pdfplumber、camelot……查詢資料表明,似乎普遍認為pdfminer的效果不怎麽好,而tabula需要java支持 ,想偷懶於是只試了pdfplumber和camelot。

安裝過程不贅述,直接來看運行結果。

pdfplumber無法直接解析出Scorecard.pdf文件中的表格,但實際上要解決此問題也並非難事。調整下思路,可先解析出pdf文件中的文本,讓後通過分列來得到表格。

利用pdfplumber的extract_text()命令可解析出pdf文件中的文本,但由於本次需要解析的得分表pdf文件的排版的原因,左右兩個表格的文本行並未完全對齊,因此如果直接解析完整頁面上的文本的話,文字會出錯。先用corp()命令指定識別範圍,然後再extract_text(),識別得到的文本列表如下所示。

對於類似本例中Scorecard.pdf表格排版有錯位的情況,也可以按照表格在頁面中所處的位置,指定表格識別的範圍。所用到的指令:camelot.plot()可以繪制出頁面的略圖,table_area參數可以指定表格識別的範圍。

又及,Camelot原來是亞瑟王和圓桌騎士們的宮殿所在地,和Asgard的Valhalla壹樣,也是傳說中的聖域。搜索camelot程序安裝包時無意中學到的,漲知識了。

[1] Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及對比

[2] 用Python提取pdf文件中的表格數據

[3] python讀取pdf文件

[4] Github: pdfplumber

[5] Camelot: PDF Table Extraction for Humans

[6] ImageMagick Installation

[7] ImageMagick之PDF轉換成圖片(image)

[8] LEED 2009 for Existing Buildings: Operations & Maintenance

[9] Camelot - Wikipedia

[10] List o’ 10 Intriguing Mythical Places

[11] Camelot識別pdf表格時的參數設置補充

  • 上一篇:三峽泄洪視頻
  • 下一篇:奇跡暖暖少女級15-2攻略少女級平民(高分)S通用攻略
  • copyright 2024編程學習大全網