楼主: MRchesian
9955 16

[程序分享] Python利器: 利用 pdfminer 把pdf 年报数据转成 txt 文本 [推广有奖]

  • 1关注
  • 7粉丝

硕士生

17%

还不是VIP/贵宾

-

威望
0
论坛币
6932 个
通用积分
68.0845
学术水平
2 点
热心指数
2 点
信用等级
1 点
经验
1074 点
帖子
49
精华
0
在线时间
215 小时
注册时间
2017-12-9
最后登录
2024-4-13

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
PDFMiner其特征有:
1、完全使用python编写。(适用于2.4或更新版本)
2、解析,分析,并转换成PDF文档。
3、PDF-1.7规范的支持。(几乎)
4、中日韩CJK语言和垂直书写脚本支持。
5、各种字体类型(Type1、TrueType、Type3,和CID)的支持。
6、基本加密(RC4)的支持。
7、PDF与HTML转换。
8、纲要(TOC)的提取。
9、标签内容提取。
10、通过分组文本块重建原始的布局。
如果你的Python有安装pip模块,就可以通过pip命令自动安装pdfminer。(不支持中文)

#python pip install pdfminer

由于我们大部分处理的文档都是中文的 所以不能直接pip 安装 使用中日韩CJK文字须先编译再安装


首先下载 安装包

使用的是pdfminer-20140328.tar.gz


https://pypi.python.org/packages/57/4f/e1df0437858188d2d36466a7bb89aa024d252bd0b7e3ba90cbc567c6c0b8/pdfminer-20140328.tar.gz




然后在Windows cmd下输入命令:

  1. mkdir pdfminer\cmap
  2. python tools\conv_cmap.py -c B5=cp950 -c UniCNS-UTF8=utf-8 pdfminer\cmap Adobe-CNS1 cmaprsrc\cid2code_Adobe_CNS1.txt
  3. python tools\conv_cmap.py -c GBK-EUC=cp936 -c UniGB-UTF8=utf-8 pdfminer\cmap Adobe-GB1 cmaprsrc\cid2code_Adobe_GB1.txt
  4. python tools\conv_cmap.py -c RKSJ=cp932 -c EUC=euc-jp -c UniJIS-UTF8=utf-8 pdfminer\cmap Adobe-Japan1 cmaprsrc\cid2code_Adobe_Japan1.txt
  5. python tools\conv_cmap.py -c KSC-EUC=euc-kr -c KSC-Johab=johab -c KSCms-UHC=cp949 -c UniKS-UTF8=utf-8 pdfminer\cmap Adobe-Korea1 cmaprsrc\cid2code_Adobe_Korea1.txt
  6. python setup.py install
复制代码



下面附上将pdf 转成 txt 的python代码


  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @Time    : 2017/7/6 21:02
  4. # @Author  : chen# @Site    :
  5. # @File    : simplePDF.py
  6. # @Software: PyCharm
  7. import os
  8. from cStringIO import StringIO
  9. import sys
  10. from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
  11. from pdfminer.converter import TextConverter
  12. from pdfminer.layout import LAParams
  13. from pdfminer.pdfpage import PDFPage
  14. def convert_pdf_2_text(path):   
  15.     rsrcmgr = PDFResourceManager()   
  16.     retstr = StringIO()
  17.     device = TextConverter(rsrcmgr, retstr, codec='utf-8', laparams=LAParams())
  18.     interpreter = PDFPageInterpreter(rsrcmgr, device)
  19.     with open(path, 'rb') as fp:
  20.         for page in PDFPage.get_pages(fp, set()):
  21.             interpreter.process_page(page)
  22.         text = retstr.getvalue()
  23.    device.close()
  24.    retstr.close()
  25.    return text
复制代码

如果嫌麻烦的话,可以联系我帮你转(Free).



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python Miner MINE 年报数据 PDF

已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
cheetahfly + 100 + 2 + 2 + 1 精彩帖子
残阳_等待 + 100 精彩帖子

总评分: 经验 + 200  学术水平 + 2  热心指数 + 2  信用等级 + 1   查看全部评分

沙发
lowbrow 发表于 2018-3-16 09:05:27 |只看作者 |坛友微信交流群
转成txt似乎不是什么难事,难的是转成表格。

使用道具

藤椅
MRchesian 学生认证  发表于 2018-3-19 19:23:41 |只看作者 |坛友微信交流群
lowbrow 发表于 2018-3-16 09:05
转成txt似乎不是什么难事,难的是转成表格。
你用的是什么转?用python 是因为可以批量处理

使用道具

板凳
lowbrow 发表于 2018-3-20 09:01:07 |只看作者 |坛友微信交流群
MRchesian 发表于 2018-3-19 19:23
你用的是什么转?用python 是因为可以批量处理
我没办法

使用道具

报纸
escaflowne1985 在职认证  发表于 2018-3-23 11:27:09 |只看作者 |坛友微信交流群
这个是python2的吧 python3里是什么模块?

使用道具

地板
wpoven 学生认证  发表于 2018-9-14 22:24:32 |只看作者 |坛友微信交流群
曾经遇到过年报加密的情况,总之年报的批量转TXT很容易遇到坑

使用道具

7
MRchesian 学生认证  发表于 2018-9-16 22:03:42 |只看作者 |坛友微信交流群
wpoven 发表于 2018-9-14 22:24
曾经遇到过年报加密的情况,总之年报的批量转TXT很容易遇到坑
加密也是有办法的, 关键是有些PDF的字符编码不统一才是坑,我处理的是90-16年的年报数据 3w+份

使用道具

8
Suun柿子 发表于 2018-9-24 10:47:56 |只看作者 |坛友微信交流群
招股说明书也可以转么

使用道具

9
MRchesian 学生认证  发表于 2018-9-30 11:31:33 |只看作者 |坛友微信交流群
Suun柿子 发表于 2018-9-24 10:47
招股说明书也可以转么
可以的

使用道具

10
myqinfei 发表于 2018-12-25 22:41:56 |只看作者 |坛友微信交流群
我在安装的过程中遇到了问题,能否麻烦指导下,有偿。我qq529604532

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-23 18:41