最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用PDFMiner.six解析PDF數(shù)據(jù)詳解

 更新時(shí)間:2025年03月10日 09:53:07   作者:夢(mèng)想畫家  
PDFMiner.six 是基于 PDFMiner 項(xiàng)目開發(fā)的增強(qiáng)版,用于從PDF文檔中提取文本和結(jié)構(gòu)信息,下面我們就來(lái)學(xué)習(xí)一下如何使用PDFMiner.six解析PDF數(shù)據(jù)吧

PDF(可移植文檔格式)文件是由Adobe創(chuàng)建的一種靈活的文件格式,它允許文檔在不同的軟件、硬件和操作系統(tǒng)中一致地顯示。每個(gè)PDF文件都包含對(duì)固定布局文檔的全面描述,包括文本、字體、圖形和其他必要的顯示元素。pdf通常用于文檔共享,因?yàn)樗鼈兡軌虮3衷几袷?。然而,以編程方式解析和解釋PDF內(nèi)容可能是一項(xiàng)挑戰(zhàn)。這些困難包括pdf的復(fù)雜結(jié)構(gòu)、不同的文本編碼、復(fù)雜的布局、壓縮的內(nèi)容和嵌入的字體等問(wèn)題。

我們最近評(píng)估了幾個(gè)流行的Python PDF庫(kù),如PyPDF/PyPDF2, PDFMiner.six, PyMuPDF, PDFplumber2,等。有些庫(kù)適合提取文本,有些適合提取圖像,有些速度很快,等等。在本文中,我們將重點(diǎn)介紹如何開始使用PDFMiner.six。最新信息請(qǐng)隨時(shí)關(guān)注官方網(wǎng)站。

環(huán)境準(zhǔn)備

安裝依賴包:

pip install pdfminer.six
pip install 'pdfminer.six[image]'

示例PDF文件可以在這里找到,當(dāng)然你也可以自己準(zhǔn)備。讓我們看看如何使用這些api:

從PDF中提取文本

從PDF中提取圖像

迭代PDF中的所有對(duì)象

從PDF中提取TableOfContent (ToC)

抽取文本

通過(guò)高級(jí)API可用于從PDF中提取文本。

from pdfminer.high_level import extract_text
from os import path

path = path.abspath(path.dirname(__file__))
print(path)

pdf_file = path + '/sample01.pdf'
text = extract_text(pdf_file)
print(text)

抽取每一頁(yè)

from io import StringIO

from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.utils import open_filename

from os import path

path = path.abspath(path.dirname(__file__))
print(path)


def iter_text_per_page(pdf_file, password='', page_numbers=None, maxpages=0,
                 caching=True, codec='utf-8', laparams=None):
    if laparams is None:
        laparams = LAParams()

    with open_filename(pdf_file, "rb") as fp:
        rsrcmgr = PDFResourceManager(caching=caching)

        idx = 1
        for page in PDFPage.get_pages(
                fp,
                page_numbers,
                maxpages=maxpages,
                password=password,
                caching=caching,
        ):
            with StringIO() as output_string:
                device = TextConverter(rsrcmgr, output_string, codec=codec,
                                       laparams=laparams)
                interpreter = PDFPageInterpreter(rsrcmgr, device)
                interpreter.process_page(page)
                yield idx, output_string.getvalue()
                idx += 1


def main():
    pdf_file = path + '/sample02.pdf'
    for count, page_text in iter_text_per_page(pdf_file):
        print(f'page# {count}:\n{page_text}')
        print()


if __name__ == "__main__":
    main()

輸出內(nèi)容截取如下:

page# 1:

產(chǎn)品主要功能包括數(shù)據(jù)采集、數(shù)據(jù)治理以及數(shù)據(jù)產(chǎn)品應(yīng)用。企業(yè)典型應(yīng)用場(chǎng)景利用 AI 算法實(shí)現(xiàn)業(yè)務(wù)分類、聚類、回歸預(yù)測(cè)以及時(shí)間序列預(yù)測(cè)等。在銷售領(lǐng)域基于歷史數(shù)據(jù)實(shí)現(xiàn)銷售預(yù)測(cè),基于用戶特征數(shù)據(jù)對(duì)客戶分類實(shí)現(xiàn)精準(zhǔn)營(yíng)銷;在采購(gòu)領(lǐng)域利用歷史數(shù)據(jù)預(yù)測(cè)采購(gòu)價(jià)格,基于多維度指標(biāo)實(shí)現(xiàn)供應(yīng)商綜合評(píng)價(jià)模型等。

page# 2:
各類政策法規(guī)進(jìn)行整理和歸納,幫助用戶更加方便快捷地獲取所需的政策信息。。。。

抽取圖像

提取圖像的最簡(jiǎn)單方法是調(diào)用命令行工具pdf2txt.py。它是在安裝PDFMiner時(shí)安裝的,并且位于Python可執(zhí)行文件的相同位置。使用的操作系統(tǒng)。可執(zhí)行文件’查找Python二進(jìn)制文件的位置。

下面是示例用法:

usage: pdf2txt.py [-h] [--version] [--debug] [--disable-caching] [--page-numbers PAGE_NUMBERS [PAGE_NUMBERS ...]]
                  [--pagenos PAGENOS] [--maxpages MAXPAGES] [--password PASSWORD] [--rotation ROTATION] [--no-laparams]
                  [--detect-vertical] [--line-overlap LINE_OVERLAP] [--char-margin CHAR_MARGIN] [--word-margin WORD_MARGIN]
                  [--line-margin LINE_MARGIN] [--boxes-flow BOXES_FLOW] [--all-texts] [--outfile OUTFILE]
                  [--output_type OUTPUT_TYPE] [--codec CODEC] [--output-dir OUTPUT_DIR] [--layoutmode LAYOUTMODE]
                  [--scale SCALE] [--strip-control]
                  files [files ...]

To extract all text from pdf:
pdf2txt.py --all-texts ../samples/manual.pdf

To extract all images from pdf:
pdf2txt.py --output-dir images ../sample03.pdf

如果希望將其集成到應(yīng)用程序中,只需從pdf2txt.py復(fù)制源代碼即可.

獲取頁(yè)數(shù)

from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfparser import PDFParser
from pdfminer.pdftypes import resolve1

pdf_file = '../samples/brocher1.pdf'

with open(pdf_file, 'rb') as f:
    parser = PDFParser(f)
    doc = PDFDocument(parser)
    parser.set_document(doc)
    pages = resolve1(doc.catalog['Pages'])
    pages_count = pages.get('Count', 0)
    print(pages_count)

抽取表格數(shù)據(jù)

pdfminer抽取表格的輸出看起來(lái)比PyPDF2好得多,我們可以很容易地使用regex或split()提取所需的數(shù)據(jù)。但是在現(xiàn)實(shí)世界中,PDF文檔包含很多噪聲,id可以是不同的格式等等。我無(wú)法想象一個(gè)算法會(huì)考慮所有的事情。為了簡(jiǎn)化和加快我們的工作,我建議將PDF文件轉(zhuǎn)換為HTML格式:

from io import StringIO
from pdfminer.high_level import extract_text_to_fp
from pdfminer.layout import LAParams

output = StringIO()
with open('example.pdf', 'rb') as pdf_file:
    extract_text_to_fp(pdf_file, output, laparams=LAParams(), output_type='html', codec=None)
with open('example.html', 'a') as html_file:
    html_file.write(output.getvalue())

然后再利用html標(biāo)簽處理庫(kù)抽取文本,這種方法準(zhǔn)確率應(yīng)該能得到保障。

到此這篇關(guān)于Python使用PDFMiner.six解析PDF數(shù)據(jù)詳解的文章就介紹到這了,更多相關(guān)Python解析PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?OpenCV?Canny邊緣檢測(cè)算法的原理實(shí)現(xiàn)詳解

    Python?OpenCV?Canny邊緣檢測(cè)算法的原理實(shí)現(xiàn)詳解

    這篇文章主要介紹了Python?OpenCV?Canny邊緣檢測(cè)算法的原理實(shí)現(xiàn)詳解,由于邊緣檢測(cè)對(duì)噪聲敏感,因此對(duì)圖像應(yīng)用高斯平滑以幫助減少噪聲,具體詳情需要的小伙伴可以參考一下
    2022-07-07
  • anaconda創(chuàng)建、查看、激活與刪除虛擬環(huán)境指令總結(jié)

    anaconda創(chuàng)建、查看、激活與刪除虛擬環(huán)境指令總結(jié)

    在跑項(xiàng)目時(shí)常常會(huì)安裝很多的包,也通常會(huì)遇到需要安裝指定版本的包,以及包與包不兼容的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于anaconda創(chuàng)建、查看、激活與刪除虛擬環(huán)境指令的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 對(duì)python:循環(huán)定義多個(gè)變量的實(shí)例詳解

    對(duì)python:循環(huán)定義多個(gè)變量的實(shí)例詳解

    今天小編就為大家分享一篇對(duì)python:循環(huán)定義多個(gè)變量的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python爬蟲獲取基金凈值信息詳情

    Python爬蟲獲取基金凈值信息詳情

    這篇文章主要介紹了Python爬蟲獲取基金凈值信息詳情,文章基于錢兩篇文章的內(nèi)容圍繞python的相關(guān)資料展開詳細(xì)介紹,需要的小伙伴可以參考一下
    2022-05-05
  • Python中的哈希算法模塊hashlib詳解

    Python中的哈希算法模塊hashlib詳解

    這篇文章主要介紹了Python中的哈希算法模塊hashlib詳解,hashlib模塊實(shí)現(xiàn)了多種哈希算法,包括MD5以及SHA家族的算法,通過(guò)algorithms_guaranteed可以查看hashlib中封裝的所有算法,需要的朋友可以參考下
    2023-08-08
  • Python中的閉包總結(jié)

    Python中的閉包總結(jié)

    這篇文章主要介紹了Python中的閉包總結(jié),本文講解了閉包的概念、為什么使用閉包、使用閉包實(shí)例等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Python實(shí)現(xiàn)曲線點(diǎn)抽稀算法的示例

    Python實(shí)現(xiàn)曲線點(diǎn)抽稀算法的示例

    本篇文章主要介紹了Python實(shí)現(xiàn)曲線點(diǎn)抽稀算法的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • linux系統(tǒng)使用python獲取內(nèi)存使用信息腳本分享

    linux系統(tǒng)使用python獲取內(nèi)存使用信息腳本分享

    這篇文章主要介紹了linux系統(tǒng)使用python獲取內(nèi)存使用情況信息,大家參考使用吧
    2014-01-01
  • Django Session和Cookie分別實(shí)現(xiàn)記住用戶登錄狀態(tài)操作

    Django Session和Cookie分別實(shí)現(xiàn)記住用戶登錄狀態(tài)操作

    這篇文章主要介紹了Django Session和Cookie分別實(shí)現(xiàn)記住用戶登錄狀態(tài)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • TensorFlow 張量操作的實(shí)現(xiàn)

    TensorFlow 張量操作的實(shí)現(xiàn)

    本文介紹了TensorFlow中的張量基礎(chǔ)操作,涵蓋張量創(chuàng)建、數(shù)學(xué)運(yùn)算、形狀操作、索引切片、廣播機(jī)制、聚合操作、排序及高級(jí)操作等核心內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-08-08

最新評(píng)論

天门市| 太白县| 雷波县| 高唐县| 南郑县| 襄垣县| 张家口市| 潮州市| 岳阳县| 新密市| 临邑县| 双桥区| 汉中市| 正宁县| 黄骅市| 清镇市| 百色市| 河南省| 天等县| 泰和县| 淮滨县| 花莲市| 鹤山市| 江阴市| 盈江县| 华安县| 岳普湖县| 屯门区| 江川县| 江阴市| 永胜县| 丰县| 孝昌县| 永登县| 扬中市| 加查县| 固原市| 合阳县| 汉沽区| 宁晋县| 卓资县|