使用 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()方法。所以我们先看看描述。
Syntax: parser.from_file(filename, additional)
Parameters:
- filename: This is location of file, it is opened in rb mode i.e. read binary mode
- additional: param service: service requested from the tika server, Default value is ‘all’, which results in recursive text content+metadata.
- ‘meta’ returns only metadata. ‘text’ returns only content.
- param xmlContent: You can have XML content, default value- False
Return type: dictionary.
现在,让我们看看用于提取 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'] ))
输出:
示例 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