一步一步指南-零老本用Python代替Adobe从PDF提取数据 (一步步指导)
一、简介
PDF文件是官网报告、发票和数据表的通用言语,但是从PDF文件中提取表格数据或者是一项应战。虽然AdobeAcrobat等工具提供了处置打算,但它们并不总是易于失掉或可智能化运转,而/target=_blankclass=infotextkey>Python则是编程言语中的瑞士军刀。本文将讨论如何应用Python轻松成功PDF数据提取,而无需经常使用低廉的软件。
二、了解应战
PDF文件是为展现而设计的,而不是为提取数据。它们通常蕴含复杂的规划,在视觉上很吸引人,但在计算上却无法访问。因此,提取表格等结构化消息十分艰巨。
三、经常使用PyMuPDF提取文本
PyMuPDF是一款轻量级的库,长于读取PDF文件并提取文本。只有几行代码,就可以读取PDF并从恣意页面提取文本。本文从飞驰个人2022年第四季度年度报告中提取股东权力变化综合报表(ConsolidatedStatementofChangesinEquity),代码如下。
importfitzimportpandasaspdimportre#---PDF处置---#定义PDF文件的门路并关上文档pdf_path='..../Merc2022Q4Rep.pdf'pdf_document=fitz.open(pdf_path)#选用要阅读的特定页面page=pdf_document[200]#失掉页面的尺寸page_rect=page.rectpage_width,page_height=page_rect.width,page_rect.height#定义感兴味区域的矩形(不包括脚注)non_footnote_area_height=page_height*0.90clip_rect=fitz.Rect(0,0,page_width,non_footnote_area_height)#从定义的区域提取文本page_text=page.get_text("text",clip=clip_rect)lines_page=page_text.strip().split('n')
四、规整数据
提取的文本通常带有不须要的字符或格局。这就是预处置施展作用的中央。Python的字符串处感性能经常使用户能够荡涤和预备数据以转换为表格格局。
#---数据荡涤---#定义要搜查的字符串并查找其索引search_string='Balanceat1January2021(restated)'try:index=lines_page.index(search_string)>#---创立DataFrame---#依据列数将荡涤后的数据宰割成块num_columns=6/>六、结语
经过应用Python弱小的库,可以智能化繁琐的PDF数据提取义务。这种方法不只老本低,而且提供了Python开发者所喜欢的灵敏性和弱小性能。
图片提取框架和文字怎么操作?
图片提取文字需要用特定的软件,现在很多手机APP都可以做到的,我用的QQ浏览器,直接拍照秒提取文字,简单又方便还不限制手机品牌:
具体步骤:
打开QQ浏览器,点击扫描王入口 找到提取文字页面,对准文字拍摄 选择需要提取的文字 导出结果就可以了
怎样利用python将pdf转换成jpg格式
可以用第三方库wand实现(我的环境:win10、python3)
需要安装wand 、imagemagick和ghostscript
wand的安装很简单:直接cmd 运行pip install wand
然后安装imagemagick ,从这里下载网页链接,注意是32位还是64位,这个需要和python的位数一致。
安装过程注意勾选Install development headers and libraries for C and C++ 。安装后设置MAGICK_HOME环境变量,值为imagemagick的安装路径,并将安装路径加入path。
![一步步指导](https://tyye.cn/zb_users/theme/tpure/style/images/lazyload.png)
详情可参照此页面网页链接。
最后安装ghostscript,这里下载网页链接,选择AGPL release,注意32位还是64位。
安装过程很简单,一路点击next,如果不想安装在c盘,可以改变安装路径,这个没有影响。
最后上代码(很简单):
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。