今天发布了最新的人口普查结果,笔者拿到的文件是pdf格式(网上应该有)。之前就一直想实现从pdf提取表格数据,输出为excel。正好这次有公开数据,因此打算用来练个手。
尝试了两种方法:
1.python的pdfplumber包:利用pdfpumber中的extract_table()方法,可以直接将pdf中表格抽取转换成excel,但是对于不规则的表格(比如有合并单元格、分布在两页中)抽取效果不太理想
2. python+百度智能云的文字识别:需要把pdf先转换成图片,再通过图片识别完成(其实。。。感觉有些多此一举。。。),不过对于边框有缺失的表格感觉效果一般。
以下是用 python+百度智能云的文字识别抽取表格信息的步骤:
零经验新手第一次尝试,正好写的稍微细致一些
声明:代码使用python3实现
!!!前期准备
1. 注册百度智能云账号:也可以用百度云账号。需要完成实名认证,并进行刷脸认证(这一步被迫下载了百度智能云app,吐槽!!为什么要另外下载app,用百度云app不香么。。。)
2. 登录百度智能云并开通通用文字识别的应用:在这个官方网站里https://ai.baidu.com/tech/ocr/general选择免费使用就行(新手练习的次数够了,我爱开放平台!)
![](https://i-blog.csdnimg.cn/blog_migrate/72b7d155d6665c3cda09ff809ff04feb.png)
3. 创建应用:这一步是为了获取后续请求接口时需要使用到的API Key和Secret Key,个人理解有点像用户名和密码,发送请求和获取结果接口的时候需要使用到。点击上图中左边栏的”文字识别“,然后出现下图的界面后,点击”创建应用”即可。具体该怎么创建,也可以百度搜索,此处省略一些描述。。。