pdf解析python
A. 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表格時的參數設置補充
