1、引言
小屌絲:魚哥, 你有沒有什么辦法,提取PDF文檔的內(nèi)容。
小魚:這個還問我??
小屌絲:哎呀,這個不是被難住了嘛 。
小魚:有啥難得?提示你一下,
小屌絲:嗯,可以可以。
小魚:去我的博文找,沒記錯的話,有兩種方法提取pdf的文字。
小屌絲:好嘞, 我這就去…找找…
小屌絲:魚哥,魚哥~
小魚:怎么樣,你的這個需求,解決了吧。
小屌絲:沒呢,我想批量提取指定PDF文檔的內(nèi)容…
小魚:批…量…
小屌絲:對啊,是批量,
小魚:這…還挺…
小屌絲:挺費勁嗎?
小魚:挺好的 ,不費勁, 一口氣,上7樓…
小屌絲:打住… 說正事! !
小魚:好嘞…
想到提取PDF文件的內(nèi)容,我們第一反應(yīng)就是pypdf,
因為pypdf這個庫我在很多篇文章都介紹過, 還蠻好用的。
但是,今天,我們不使用pypdf,而是使用另一個庫,即:pdfminer。
2、代碼實戰(zhàn)
2.1 介紹
pdfminer我相信很多同學(xué)都沒聽說過,除非,你經(jīng)常提取/解析PDF文件的內(nèi)容,否則,你對ta,只能是陌生。
其實,提取PDF文件內(nèi)容解決方案,截止到現(xiàn)在, 只有pypdf 和pdfminer這兩種。
所以, 如果你厭倦了, pypdf,那只能選擇pdfminer了。
那什么是pdfminer 呢,或者 pdfminer有什么神奇之處呢?
-
定義
- PDFMiner是用于從PDF文檔提取信息的工具;
- 與其他PDF相關(guān)工具不同,它完全專注于獲取和分析文本數(shù)據(jù);
-
功能
- PDFMiner允許獲取頁面中文本的確切位置以及其他信息,例如字體或線條;
- 它包括一個PDF轉(zhuǎn)換器,可以將PDF文件轉(zhuǎn)換為其他文本格式(例如HTML);
2.2 安裝
由于pdfminer是python 的第三方庫, 所以,需要安裝,
老規(guī)矩, 直接pip 安裝
安裝
pip install pdfminer
安裝完成:
因為我們需要用到 pdfminer的high_level 方法,所以
這里必須要在安裝pdfminer.six模塊,否則會報錯:
安裝
pip install pdfminer.six
安裝完成:
其它安裝方式,直接看這兩篇:
- 《Python3,選擇Python自動安裝第三方庫,從此跟pip說拜拜?。?/strong>》
- 《Python3:我低調(diào)的只用一行代碼,就導(dǎo)入Python所有庫!》
2.3 實例
安裝完成,我們就來寫上代碼,
我們先來捋順一下思路,主要分3步:
- 1、遍歷pdf文件
- 注:如果文件夾的文件多個,需要單獨提取目標(biāo)pdf文件,否則都會輪巡匹配,費事費力費資源;
- 2、提取pdf文檔內(nèi)容
- 3、根據(jù)正則匹配,提取需要的文檔信息
我們就根據(jù)這個思路,來提取"企業(yè)基本情況",代碼如下:
代碼示例
# -*- coding:utf-8 -*-
# @Time : 2022-11-30
# @Author : Carl_DJ
from pdfminer import high_level
import re,os
#pdf文件路徑
#root:文件夾路徑,dirs:文件夾下子目錄名,files:文件夾下的文件
for root,dirs,files in os.walk('./data/'):
#遍歷pdf文件
for f in files:
file_name = os.path.join(root,f)
if file_name.endswith('.pdf'):
#提取整個 pdf 文本信息
text = high_level.extract_text(file_name)
#提取 pdf文檔中 "企業(yè)進(jìn)本情況:" 后面的信息,利用正則進(jìn)行匹配
regex = r'企業(yè)基本情況-(.*?)\n'
qy_base = re.findall(regex,text)
print(f'輸出信息:{qy_base}')
pdf文件
運(yùn)行結(jié)果
3、總結(jié)
看到這里,今天的分享,差不多就該結(jié)束了。
解析PDF是一件非常耗時和耗內(nèi)存的工作,因此,pdfminer使用一種稱作Lazy Parsing的策略,減少內(nèi)耗…
小屌絲:怪不得, 提到批量提取pdf的文檔內(nèi)容, 你會猶豫了…
小魚:對啊,因為我們的的測試文檔內(nèi)容很少,所以對內(nèi)存的消耗相對來說沒那么驗證,當(dāng)PDF文檔的內(nèi)容很多時, 就不得不使用pdfminer了。
并且, 關(guān)于pdf文檔的內(nèi)容提取,我們能多學(xué)習(xí)幾個技能,就多學(xué)習(xí)幾個技能。
技能多了,路就多了,最后,收入也就多了。
我是小魚:文章來源:http://www.zghlxwxcb.cn/news/detail-442870.html
- CSDN 博客專家;
- 阿里云社區(qū) 專家博主;
- 金牌面試官
- 51 講師;
關(guān)注我,帶你學(xué)習(xí)更多更有趣的Python知識。文章來源地址http://www.zghlxwxcb.cn/news/detail-442870.html
到了這里,關(guān)于Python3,9行批量提取PDF文件的指定內(nèi)容,這種操作,保證人見人愛....的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!