Python编程–使用PyPDF解析PDF文件中的元数据

元数据

作为一种文件里非常明显可见的对象,元数据可以存在于文档、电子表格、图片、音频和视频文件中。创建这些文件的应用程序可能会把文档的作者、创建和修改时间、可能的更新版本和注释这类详细信息存储下来。例如,手机照相会把照片的GPS位置信息存下来,微软的Word程序也可能会保存文档的作者信息。

案例解析

互联网上至今还能下载到某黑客组织的某个成员的匿名发布的稿子–ANONOPS_The_Press_Release.pdf。匿名者在稿件中发布信息,组织号召要通过对涉及的一些机构进行分布式拒绝服务攻击(DDoS)以实现报复。这个稿子既没有签名,也没有标注消息来源,只是以PDF(Portable Document Format, 便携式文档格式)文件的形式被发布出来。但是实际创建这个文档所用的程序在PDF元数据中记录了文档作者的名字。

PYPDF是一款很优秀的管理PDF文档的第三方实用程序,可以去http://pybrary.net/pyPdf/下载它。它允许提取文档中的内容,或对文档进行分割、合并、复制、加密和解密操作。若要提取元数据,我们可以使用.getDocumentInfo()方法,该方法会返回一个tuple数组,每个tuple中都含有对元数据元素的一个描述及它的值。逐一遍历这个数组,就能打印出PDF文档的所有元数据。

示例代码如下:

import pyPdf
from pyPdf import PdfFileReaderdef printMeta(fileName):pdfFile = PdfFileReader(file(fileName, 'rb'))docInfo = pdfFile.getDocumentInfo()print('[*] PDF MetaData For: ' + str(fileName))for metaItem in docInfo:print(metaItem + ':' + docInfo[metaItem])

再添加一个OptionParser方法,让脚本只解析我们指定文件元数据,这样我们就有了一个能识别嵌入在PDF文档中元数据的工具。同样,我们也可以修改我们的脚本,去检查某个特定的元数据—指定的用户。此示例,帮助帮助希腊的执法官员搜索出所有“作者”这一元数据被标记为Alex Tapanaries的文档。源码如下:

# 导入各类模块
import pyPdf
import optparse
from pyPdf import PdfFileReader, PdfFileWriterdef printMeta(fileName):pdfFile = PdfFileReader(file(fileName, 'rb'))docInfo = pdfFile.getDocumentInfo()print('[*] PDF MetaData For: ' + str(fileName))for metaItem in docInfo:print(metaItem + ':' + docInfo[metaItem])def main():parser = optparse.OptionParser('usage %prog -F <PDF file name>' )parser.add_option('-F', dest = 'filename', type = 'string', help = 'specify PDF  file name')(options, args) = parser.parse_args()fileName = options.filenameif fileName == None:print(parser.usage)exit(0)else:printMeta(fileName)if __name__ == '__main__':printMeta()

对匿名者网站发布的这个文件运行这个pdfReader脚本,我们就能看到导致希腊当局逮捕Tapanaries先生的元数据。

Python编程--使用PyPDF解析PDF文件中的元数据相关推荐

  1. python自动翻译pdf_python实现从pdf文件中提取文本,并自动翻译的方法

    针对Python 3.5.2 测试 首先安装两个包: $ pip install googletrans $ pip install pdfminer3k googletrans会提供一个命令tran ...

  2. java用tabula解析pdf文件中的表格

    前面写了一个用pdf解析pdf格式的发票,因为发票的样式相当于一个表格,之前那篇博客已经说过了,pdfbox没找到能定位表格的线坐标的方法,所以明细部分的解析不能说是100%的正确,今天又找到一个新的 ...

  3. 使用python的PyPDF2 库删除pdf文件中的空白页

    参考文章:https://blog.csdn.net/xingxtao/article/details/79056341 pdf中的第4页和第10页是空白页.为了将其删除,使用以下代码: from P ...

  4. python抓取表格数据_Python如何实现从PDF文件中爬取表格数据(代码示例)

    本篇文章给大家带来的内容是关于Python如何实现从PDF文件中爬取表格数据(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 本文将展示一个稍微不一样点的爬虫. 以往我们的 ...

  5. python提取pdf表格数据_Python骚操作,提取pdf文件中的表格数据!

    在实际研究中,我们经常需要获取大量数据,而这些数据很大一部分以pdf表格的形式呈现,如公司年报.发行上市公告等.面对如此多的数据表格,采用手工复制黏贴的方式显然并不可取.那么如何才能高效提取出pdf文 ...

  6. [299]python实现批量解析PDF文件提取内容并写入到Excel中

    摘要:最近需要将一批PDF文件中的某些数据整理到Excel中,因为文件数量接近20w+,手动更新几乎不现实,于是就提取关键词和内容动手写了个Python小工具,以实现自动完成上述目标. 要求: 读取P ...

  7. python处理pdf实例_python使用pdfminer解析pdf文件的方法示例

    最近要做个从 pdf 文件中抽取文本内容的工具,大概查了一下 python 里可以使用 pdfminer 来实现.下面就看看怎样使用吧. PDFMiner是一个可以从PDF文档中提取信息的工具.与其他 ...

  8. python 读取pdf cid_python使用pdfminer解析pdf文件的方法示例

    最近要做个从 pdf 文件中抽取文本内容的工具,大概查了一下 python 里可以使用 pdfminer 来实现.下面就看看怎样使用吧. PDFMiner是一个可以从PDF文档中提取信息的工具.与其他 ...

  9. Python使用pdfminer3k提取PDF文件中的文本

    推荐教材: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年12月第11次印刷,山东省一流 ...

最新文章

  1. QIIME 2教程. 29参考数据库DataResources(2020.11)
  2. python控制流_Python学习--控制流
  3. PHP-代码审计-SQL注入
  4. 很遗憾,总对工作挑挑拣拣的家伙,一般结局都不会太好
  5. 使用NetBeans Lambda支持在Java 8中使用Lambda表达式对列表进行排序
  6. logo下方显示技术支持信息_LOGO墙形象设计的几种方案
  7. (转)解决RabbitMQ service is already present - only updating service parameters
  8. 收集整理的较为经典的shell脚本合计
  9. 【计算机网络】网络层 : RIP 协议 ( 路由选择协议分类 | RIP 协议简介 | 信息交换 | 距离向量算法 | 计算示例 )★
  10. 商城开发-用户管理模块(2)
  11. CR blocks 创建
  12. oracle找出两张表中不同的数据
  13. c语言汉字utf8,C语言汉字gbk转utf-8
  14. 网易MuMu模拟器安装及配置
  15. 学会Python开发的第一步:写一个桌面小程序
  16. 数学中蕴含的人生哲理
  17. Cron expression must consist of 6 fields
  18. 深度分析数据库的热点块问题
  19. 以太坊区块链浏览器(二)开发
  20. 机器人课程对孩子的用意

热门文章

  1. ISP(一) 基础知识储备
  2. 前端一面常见vue面试题汇总
  3. 必须掌握的电脑快捷键
  4. 智慧停车场管理系统php,智慧停车场管理系统云平台源码
  5. 职业经理人的生活习惯
  6. Unity Vuforia(高通)AR
  7. 3mm黑科技单衣硬扛-196°C极寒!竟是NASA宇航服改的,万元羽绒服被秒成渣
  8. 论文解读 | 利用自适应图推理的光流学习方法
  9. 搭建socks5服务器
  10. ADS学习:LC滤波器设计与仿真