📜  使用 Tika 在Python中解析 PDF

📅  最后修改于: 2022-05-13 01:54:52.692000             🧑  作者: Mango

使用 Tika 在Python中解析 PDF

Apache Tika 是一个用于文档类型检测和从各种文件格式中提取内容的库。使用它,可以开发一种通用类型检测器和内容提取器,以在一定程度上从不同类型的文档(如电子表格、文本文档、图像、PDF 甚至多媒体输入格式)中提取结构化文本和元数据。 Tika-Python 是与 Apache TikaTM REST 服务的Python绑定,允许以Python语言本地调用 tika。

安装:

要安装 Tika,请在终端中输入以下命令。

pip install tika

注意: Tika 是用Java编写的,因此您需要安装一个Java(7 或 7+)运行时

为了从 PDF 文件中提取内容,我们将使用解析器对象的from_file()方法。所以我们先看看描述。

现在,让我们看看用于提取 pdf 数据的Python程序:

示例 1:提取 pdf 文件的内容。

Python3
# import parser object from tike
from tika import parser  
  
# opening pdf file
parsed_pdf = parser.from_file("sample.pdf")
  
# saving content of pdf
# you can also bring text only, by parsed_pdf['text'] 
# parsed_pdf['content'] returns string 
data = parsed_pdf['content'] 
  
# Printing of content 
print(data)
  
# 
print(type(data))


Python3
# import parser object from tike
from tika import parser  
  
parsed_pdf = parser.from_file("sample.pdf")
  
# ['metadata'] attribute returns 
# key-value pairs of meta-data 
print(parsed_pdf['metadata']) 
  
# 
print(type(parsed_pdf['metadata']))


Python3
from tika import parser
  
parsed_pdf=parser.from_file("sample.pdf")
  
# Returns keys applicable for given pdf.
print(parsed_pdf.keys())


Python3
from tika import parser
  
# You can also know the 
# status returned from tika 
# server, 200 for success 
parsed_pdf= parser.from_file("sample.pdf")
  
print(parsed_pdf['status'],type(parsed_pdf['status'] ))


输出:

pdf内容

示例 2:提取 pdf 文件的元数据。

Python3

# import parser object from tike
from tika import parser  
  
parsed_pdf = parser.from_file("sample.pdf")
  
# ['metadata'] attribute returns 
# key-value pairs of meta-data 
print(parsed_pdf['metadata']) 
  
# 
print(type(parsed_pdf['metadata']))

输出:

元数据

示例 3:提取密钥。

Python3

from tika import parser
  
parsed_pdf=parser.from_file("sample.pdf")
  
# Returns keys applicable for given pdf.
print(parsed_pdf.keys())

输出:

解析字典的键

示例 4:了解 tika 服务器状态。

Python3

from tika import parser
  
# You can also know the 
# status returned from tika 
# server, 200 for success 
parsed_pdf= parser.from_file("sample.pdf")
  
print(parsed_pdf['status'],type(parsed_pdf['status'] ))

输出:

200