电子说
在做大数据的时候,首先第一步就是要解决数据的来源,我们采用的设计方案就是使用Python来从一些政府网站爬数据,将披露的银行、证券、股票、信托等行业中三大报表(利润表、资产负债表、现金流量表)数据解析并录入数据库,我们采用java编程来实现三大报表数据解析。
程序设计采用java面向对象设计的概念,利用java继承、封装、多态的特性来设计,可以减去程序更改的麻烦,以前写的类可以继续使用。
程序设计架构采用如下所示:
ParentTable包含三个函数。
MatchStartLine():用于查找三大报表的起始行。
MatchEndline():用于查找三大报表的结束行。
Anla():用于解析查找到的报表行。
在解析不用的PDF文件时,直接进行override这三个函数,就可以实现解决不同的表格匹配问题。
新建一个PDFFile类,在这个类中实现调用ParentTable的anla函数,来解析所有的PDF文件中的所有表格。
public boolean anla(){
for(ParentTable table : tables){
int nIndexStart = table.matchStartLine(lines);
int nIndexEnd = table.matchEndLine(lines);
/*取出表内容*/
String[] arrTableLines =newString[nIndexEnd - nIndexStart +1];
System.arraycopy(lines, nIndexStart, arrTableLines,0, nTableLineCount);
if(arrTableLines.length <=0)
continue;
table.setTableLines(arrTableLines);
/*分析表内容*/
table.anla();
}
}
在主程序中,调用PDFFile类中的anla()函数,将依次解析tables参数中所有表格类型,将解决匹配所有PDF文件中表格。
下一节将解决如何使用多线程来解析PDF文件。
全部0条评论
快来发表一下你的评论吧 !