目录
一、前言
小编最近遇到需求了:
<1>从PDF提取出关键数据;
<2>将关键数据整理到对应的Excel文件;
<3>要求批处理,可以处理多个类似的内容的PDF文件;
<4>重点还是提取上市公司年报的财务数据。
小编看到这个需求,首先想到用python,应了那句“人生苦短,必须python”。是的,python确实是一门好用的工具语言。问问度娘,还真有用于处理PDF文件的Package,列示如下:
(1)PDFMiner;(2)PyPDF2; (3)Tabula; (4)pdfplumber
每个包的侧重点不同,小编这里细说,伙伴们自行百度/谷歌/Bing。经过一番对比,小编最终选择了pdfplumber,其综合表现最佳。使用教程可以参考这篇博客
二、难点
这里先贴出Pdfplumber使用的一些关键说明,关键操作基本有这两张表就OK了。
初步测试了一篇PDF年报,指定页提取表格数据,是一个3维的list,表格table2维,1维表示当前页面的表数量。感觉还不错,正当小编开始跃跃欲试之际,难点遇到了:
<1>当页码不知道的时候,怎么提取所需的数据,依据什么关键词判断页面包含关键数据;
<2>对于上市公司而言,不同公司的年报数据格式不一样,年报的关键词表述也不一致,有的1列,有的2列,甚至更多,表格还存在跨页的现象;
<3>同一公司不同年份的数据也出现和<2>中一致的情况,这就对工具提出了考验啊。
三、提取难点解决思路
1、关于<1>中的难点,基本没啥特别的办法,一方面关键词要选对,但又不能太具体化,要模糊,具备范化能力的关键词,大白话就是几乎所有的PDF文件涉及到这类数据的时候都包含这个关键词,如果有其他情况,那就需要关键词多个组合考虑,基本就是统计组合的思想加上过滤条件。
2、关于<2><3>中的情况,那就比较复杂,这里不好展开讲,小编经过一番探索,也可以提取了,但是发现像同花顺这样的网站有年报的数据了,直接爬就好了。但是小编对比发现很多数据和年报中的有差异。于是乎决定自己提取。
四、源代码
经过几天的摸索,终于出来了可以提取数据的工具。效果展示:
这是提取的万科投资理财产品中的银行理财数据,还蛮准确的,而这些数据,一些股票软件中是看不到的。如果需要提取别的数据,那么只需更改year和key这两行数据就好了。比如衍生数据的
源代码分享链接:https://pan.baidu.com/s/1xshkG8cjAyH6NUWqT72UdQ 提取码:5mrd 。批处理只需要一份上市公司目录即可。
谢谢您的阅读,欢迎交流!!!