数据清洗(三)----- 清洗PDF文件中的数据

       可移植文档格式(PDF)存储的文件相对较复杂,因为它是以二进制的形式存储的,格式固定,不可修改。使用起来很方便,但是里面的信息相对较难提取,下面将介绍一些方式提取FDF中的信息。

1. 最简单的方式----复制

      有pdf文件里面的内容可以复制出来再整理,这对于需要从PDF中拿少量信息来说十分便利;但是数据比较多时这样做的效率低下,而且有的PDF根本无法复制,因此这种方式局限性很大。

2. pdfMiner3k

      这个python的程序包使我们可以从PDF中提取出需要的信息。它自带的 pdf2txt 和 dumpPDF 工具可以提取并输出相应的信息。

比如下面的这个例子:(别人写的,我这里只是借用说明一下)

import sys
import importlib
importlib.reload(sys)

from pdfminer.pdfparser import PDFParser,PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal,LAParams
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed

'''
 解析pdf 文本,保存到txt文件中
'''
path = r'../../data/pdf/阿里巴巴Java开发规范手册.pdf'
def parse():
    fp = open(path, 'rb') # 以二进制读模式打开
    #用文件对象来创建一个pdf文档分析器
    praser = PDFParser(fp)
    # 创建一个PDF文档
    doc = PDFDocument()
    # 连接分析器 与文档对象
    praser.set_document(doc)
    doc.set_parser(praser)

    # 提供初始化密码
    # 如果没有密码 就创建一个空的字符串
    doc.initialize()

    # 检测文档是否提供txt转换,不提供就忽略
    if not doc.is_extractable:
        raise PDFTextExtractionNotAllowed
    else:
        # 创建PDf 资源管理器 来管理共享资源
        rsrcmgr = PDFResourceManager()
        # 创建一个PDF设备对象
        laparams = LAParams()
        device = PDFPageAggregator(rsrcmgr, laparams=laparams)
        # 创建一个PDF解释器对象
        interpreter = PDFPageInterpreter(rsrcmgr, device)

        # 循环遍历列表,每次处理一个page的内容
        for page in doc.get_pages(): # doc.get_pages() 获取page列表
            interpreter.process_page(page)
            # 接受该页面的LTPage对象
            layout = device.get_result()
            # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要获取文本就获得对象的text属性,
            for x in layout:
                if (isinstance(x, LTTextBoxHorizontal)):
                    with open(r'../../data/pdf/1.txt', 'a') as f:
                        results = x.get_text()
                        print(results)
                        f.write(results + '\n')

if __name__ == '__main__':
    parse()

原文:https://blog.csdn.net/u011389474/article/details/60139786 

            pdfMiner3k在提取行信息的PDF时比较规整,但在提取表格数据上表现较糟糕。下面将要介绍的工具包在提取PDF中的表格信息时比较好用。

3. Tabula

       该工具包专门用来提取PDF表格数据的,同时支持PDF导出为CSV、Excel格式。它是一个基于JAVA的程序,因此如果要在python上使用的话需要这么安装:pip install tabula-py;

        tabula-py依赖库包括java、pandas、numpy,所以需保证运行环境中安装了这些库。

       比如有一个PDF文件中有一个企业信息的表格,用这种办法将信息提取出来:

import tabula

df = tabula.read_pdf("E:\\test\\cb7b5.pdf", encoding='gbk', pages='all')
print(df)
for indexs in df.index:
    # 遍历打印企业名称
    print(df.loc[indexs].values[1].strip())

4. pdf2htmlEX

      这个包的作用是将pdf格式转换成html格式;

import subprocess

subprocess.call('"D:\Program Files (x86)\pdf2htmlEX-win32-0.14.6-upx-with-poppler-data\pdf2htmlEX.exe"  
--dest-dir E:\\test\extract\\2017gq\\out  E:\\test\extractb7b5.pdf', shell=True)

      整体转换的效果非常不错,但是转换后的标签没有特点,使数据的提取变得非常困难。

5. 杀手锏

      如果上面的所有办法效果都不太好的话,可以考虑使用付费的软件,因为很多工具可以将PDF转换为其它格式的文件。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 《数据湖治理心-数据治理方法论(2021)(22页)》是一本介绍数据湖治理方法的文件数据湖治理是管理和维护数据湖的过程,以确保数据数据质量、安全性和可用性。该方法论提供了几个关键的数据治理方法: 首先,数据分类和标准化是数据湖治理的重要步骤。通过对数据进行分类,可以根据其用途和属性确定相应的数据治理策略。同时,标准化数据格式和命名规范可以提高数据的一致性和可理解性。 其次,数据访问和权限管理是数据湖治理的核心。通过定义合适的数据访问权限,可以控制数据的使用范围和操作权限,从而保护数据安全和隐私。同时,数据访问日志和审计机制可以跟踪数据的使用记录,确保数据使用的合规性。 此外,数据质量管理也是数据湖治理的重要环节。通过数据质量评估和监控,可以及时发现和纠正数据质量问题,确保数据的准确性、完整性和一致性。数据质量指标和数据质量规则可以作为评估和监控数据质量的依据。 最后,数据生命周期管理是数据湖治理的关键环节。数据数据可能会不断变化和演化,因此需要定义数据的生命周期,包括数据的采集、存储、清洗、转换和删除等不同阶段。同时,数据备份和灾备策略也是确保数据可用性和可恢复性的重要措施。 综上所述,《数据湖治理心-数据治理方法论(2021)(22页)》提供了一套系统的数据湖治理方法,包括数据分类和标准化、数据访问和权限管理、数据质量管理和数据生命周期管理等关键步骤,有助于提升数据湖的管理和维护水平。 ### 回答2: 《数据湖治理心-数据治理方法论(2021)(22页).pdf》是关于数据湖治理心和数据治理方法论的一篇论文或者文档。 数据湖治理心是一个机构或者平台,负责管理和监督数据湖的建设和运营。数据湖是指一个集存储各种结构化和非结构化数据的大型存储系统,其数据以原始的、未经处理的形式保存。数据湖治理心的主要任务是确保数据数据质量、数据安全和数据可用性。 数据治理方法论是指一套用于管理和治理数据的方法和原则。它包括数据质量管理、数据安全管理、数据隐私管理、数据备份恢复等方面的内容。这些方法和原则可以帮助组织建立有效的数据管理框架和策略,以保证数据的准确性、完整性和可靠性。 在《数据湖治理心-数据治理方法论(2021)(22页).pdf,可能会介绍以下内容: 1. 数据湖治理心的组织结构和职责,包括数据湖的架构设计、数据采集和数据处理流程,以及数据湖的监控和维护工作。 2. 数据治理方法论的基本原则和步骤,例如制定数据策略、数据分类和分级、数据标准化、数据质量管理、数据安全管理等。 3. 数据湖治理心与业务部门的协作和沟通,以便更好地与业务需求和业务流程对接,以实现数据的深度利用和价值挖掘。 4. 数据湖治理心的技术和工具,例如数据湖平台、数据集成工具、数据质量工具、数据安全工具等,用于支持数据湖的建设和管理工作。 综上所述,《数据湖治理心-数据治理方法论(2021)(22页).pdf》是一份关于数据湖治理心和数据治理方法论的文档,主要介绍了数据湖治理心的职责和组织结构,以及数据治理方法论的基本原则和步骤。通过这份文档,读者可以了解如何有效地管理和治理数据湖,以实现数据的准确性、完整性和可靠性。 ### 回答3: 《数据湖治理心-数据治理方法论(2021)(22页).pdf》是一份介绍数据湖治理方法论的文档。数据湖治理是指对数据数据进行有效管理和治理,以确保数据的质量、准确性和安全性。 该文档主要包含以下内容: 1. 数据湖概述:介绍了数据湖的基本概念和特点,以及数据湖治理的必要性和重要性。 2. 数据湖治理框架:提出了一个完整的数据湖治理框架,包括决策层、管理层、执行层和监控层。每一层都有具体的职责和任务,以确保数据湖的有效管理和治理。 3. 数据治理方法论:介绍了数据治理的一些基本原则和方法。其涉及到数据质量管理、元数据管理、数据安全管理、数据访问和权限管理等方面的内容。 4. 数据湖治理工具和技术:介绍了一些常用的数据湖治理工具和技术,包括数据质量工具、元数据管理工具、数据安全工具等。通过使用这些工具和技术,可以更好地进行数据湖治理工作。 5. 治理案例分析:提供了一些实际案例分析,展示了如何应用数据湖治理方法论解决实际问题。这些案例可以帮助读者更好地理解和应用数据湖治理方法论。 总的来说,《数据湖治理心-数据治理方法论(2021)(22页).pdf》是一份系统、全面地介绍数据湖治理方法论的文档。通过学习和应用其的内容,可以帮助组织更好地管理和治理数据湖,提高数据的质量和价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值