乐于分享
好东西不私藏

Python提取PDF内容,4个方法让效率翻倍!

Python提取PDF内容,4个方法让效率翻倍!

你是不是经常需要从PDF里提取数据?

手动复制粘贴太慢了,格式还乱七八糟。

说实话,我之前也为此头疼。

直到我发现了Python的强大。

今天分享4个提取PDF内容的方法,让你告别复制粘贴。

往期阅读>>>

Python 为什么会成为AI时代的头部语言

Python 40个常用的列表推导式

Python 50个提高代码开发效率的方法

Python 自动检测服务HTTPS证书过期时间并发送预警

Python 自动化操作Redis的15个实用脚本

Python 自动化管理Jenkins的15个实用脚本,提升效率

Python copyparty搭建轻量的文件服务器的方法

Python 实现2FA认证的方法,提升安全性

Python 封装20个常用API接口,提升开发效率

App2Docker:如何无需编写Dockerfile也可以创建容器镜像

Python 集成 Nacos 配置中心的方法

Python 35个JSON数据处理方法

Python 字典与列表的20个核心技巧

Python 15个文本分析的库,提升效率

Python 15个Pandas技巧,提升数据分析效率

Python 运维中30个常用的库,提升效率

Python调用远程接口的方法

Python 提取HTML文本的方法,提升效率

Python 应用容器化方法:实现“一次部署,处处运行”

Python 自动化识别Nginx配置并导出为excel文件,提升Nginx管理效率

Python 5个常见的异步任务处理框架

Python数据科学常见的30个库

Python 50个实用代码片段,优雅高效


方法一:PyPDF2提取文字

最简单的方式就是用PyPDF2。

它像个基础版的PDF阅读器,能快速把文字抠出来。

import PyPDF2def extract_text_pypdf2(pdf_path):    """提取PDF中的文字内容"""    with open(pdf_path, 'rb') as file:        pdf_reader = PyPDF2.PdfReader(file)        text = ""        for page in pdf_reader.pages:            text += page.extract_text()        return text

用起来很简单对吧?

打开PDF,一页页读,把文字拼起来就行。

不过它只能提取文字,表格和图片就无能为力了。

适合场景

:只需要提取纯文字,PDF结构简单

方法二:pdfplumber(强烈推荐)

这个库我必须重点推荐。

为什么?因为它能提取文字、表格、图片三种内容。

就像一个全能选手,什么都能干。

import pdfplumberimport pandas as pddef extract_pdf_content(pdf_path):    """使用 pdfplumber 提取 PDF 的文字、表格、图片信息"""    results = {        'text': '',        'tables': [],        'images': []    }    with pdfplumber.open(pdf_path) as pdf:        for page in pdf.pages:            # 1. 文字            text = page.extract_text()            if text:                results['text'] += text + '\n'            # 2. 表格            tables = page.extract_tables()            for table in tables:                if table:                    df = pd.DataFrame(table[1:], columns=table[0])                    results['tables'].append(df)            # 3. 图片            for img in page.images:                results['images'].append({                    'page': page.page_number,                    'bbox': (img['x0'], img['y0'], img['x1'], img['y1']),                    'width': img.get('width'),                    'height': img.get('height')                })    return results

你看,代码也不复杂。

但功能强大多了,表格提取尤其出色。

适合场景

:需要提取文字+表格的PDF,最常用的方案

方法三:PyMuPDF提取图片

PyMuPDF(也叫fitz)的特点是什么?

图片提取效果好,速度快。

如果你需要把PDF里的图片都抠出来,选它准没错。

import fitzfrom PIL import Imageimport iodef extract_pdf_fitz(pdf_path):    doc = fitz.open(pdf_path)    results = {'text': '', 'images': []}    for page_num in range(len(doc)):        page = doc[page_num]        # 1. 文字        results['text'] += page.get_text()        # 2. 图片        for img in page.get_images():            xref = img[0]                                   pix = fitz.Pixmap(doc, xref)            if pix.n - pix.alpha < 4:                        img_data = pix.tobytes("png")                results['images'].append(                    {'page': page_num+1,                     'image_data': Image.open(io.BytesIO(img_data)),                     'size': (pix.width, pix.height)}                )            pix = None    doc.close()    return results

图片提取的质量很高,还能转成PIL格式直接处理。

适合场景

:重点需要提取PDF中的图片

方法四:camelot专门提取表格

camelot是个专才,只干一件事:提取表格。

但这一件事,它做得比谁都好。

特别是那些复杂的表格,它的准确率最高。

import camelotdef extract_tables_camelot(pdf_path):    """使用camelot专门提取表格(适合复杂的表格)"""    tables = camelot.read_pdf(pdf_path, pages='all')    results = []    for i, table in enumerate(tables):        df = table.df        results.append({            'table_number': i + 1,            'accuracy': table.accuracy,            'dataframe': df,            'shape': df.shape        })    return results

它还能告诉你提取的准确率,很贴心。

适合场景

:PDF里有大量复杂表格,对准确率要求高

这四个方法怎么选?

给你一个简单的对比表:

库名称
文字提取
表格提取
图片提取
特点
PyPDF2
基础
不支持
不支持
轻量级,简单好用
pdfplumber
优秀
优秀
基础
推荐

,全能选手
PyMuPDF
优秀
一般
优秀
图片提取快
camelot
一般
专业
不支持
表格提取专家

我的建议

如果只要文字:PyPDF2够用了

如果要文字+表格:pdfplumber是首选

如果要图片:PyMuPDF

如果表格复杂:camelot

终极组合

pdfplumber + PyMuPDF,文字、表格、图片全覆盖

写在最后

Python处理PDF确实强大。

选对库,事半功倍。

希望这4个方法能帮到你。

如果有其他问题,评论区聊聊~

💬 你平时用Python处理PDF遇到过什么坑?欢迎分享!

如果这篇文章对你有帮助,点个在看让更多人看到吧

“无他,惟手熟尔”!有需要的用起来!

想高效学习Python?下面三本精选好书满足你的不同需求!

《流畅的Python(第2版)》——Python进阶必读!深入讲解高级特性与最佳实践,适合想精进的开发者。

《Python从新手到高手》:初学者首选,系统学习全栈技能

《Python数据分析:从零基础入门到案例实战》——数据科学利器!手把手教你用Python处理数据,实战案例学完就能用。

三本书均支持先用后付、运费险和7天无理由退货,放心购买!点击“购买”按钮,立即开启你的Python学习之旅吧!

点击下方,即可购书
——加入知识库与更多人一起学习——

https://ima.qq.com/wiki/?shareId=f2628818f0874da17b71ffa0e5e8408114e7dbad46f1745bbd1cc1365277631c

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » Python提取PDF内容,4个方法让效率翻倍!

评论 抢沙发

6 + 7 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮