Python 解析財務報表中的表格數據(pdf to tables)

解析PDF經常使用組件(PdfBox、iText、Tika等)都沒法將表格數據解析成有規則的格式。解析後格式基本是TEXT、XHTML等致使處理表格數據變的很是複雜,基本須要全枚舉+正則才能處理個70-80%。最近看到Python能夠解析表格因而嘗試了一下,不過要想讓數據可用,還存在不少問題待解決。
PDF文件截圖
在這裏插入圖片描述java

Tika解析PDF文件
一、TEXT格式web

Tika tika = new Tika();
tika.setMaxStringLength(100 * 1024 * 1024);
try (InputStream stream = new FileInputStream(new File("600060_2018_zB.pdf"))) {
	return tika.parseToString(stream);
}

Text格式解析結果
在這裏插入圖片描述
二、XHTML格式數組

ContentHandler handler = new ToXMLContentHandler();
AutoDetectParser parser = new AutoDetectParser();
Metadata metadata = new Metadata();
try (InputStream stream = new FileInputStream(new File("600060_2018_zB.pdf"))) {
	parser.parse(stream, handler, metadata);
	return handler.toString();
}

XHTML格式解析結果
在這裏插入圖片描述svg

Python解析表格
一、前十名股東表格原始數組在這裏插入圖片描述spa

二、處理過的財務指標
在這裏插入圖片描述3d

三、處理過單位後的快報數據
在這裏插入圖片描述
暫時還不通用存在一些問題,如換行、表頭、每列佔用單元格個數不統1、分頁等。code