如何在python(2.7)中使用Tika软件包(https://github.com/chrismattmann/tika-python)解析PDF文件?

Abh*_*k.A 1 python pdf parsing apache-tika

我正在尝试解析一些包含工程图的PDF文件,以获取文件中的文本数据。我尝试将TIKA用作python罐子,并将其与jnius包一起使用(在此处使用本教程:http : //www.hackzine.org/using-apache-tika-from-python-with-jnius.html),但是代码抛出错误。

但是,使用TIKA包,我可以传递文件并解析它们,但是Python只能提取元数据,并且当要求解析内容时,Python返回输出“ none”。它能够完美地解析.txt文件,但无法提取PDF的内容。这是代码

import tika
tika.initVM()
from tika import parser
parsed = parser.from_file('/path/to/file')
print parsed["metadata"]
print parsed["content"]
Run Code Online (Sandbox Code Playgroud)

我是否需要其他程序包/代码行才能提取数据?

Hak*_*ata 11

您需要下载Tika Server Jar并首先运行它。检查此链接:http : //wiki.apache.org/tika/TikaJAXRS

  1. 下载罐子
  2. 将其存储在某处并以 java -jar tika-server-x.x.jar --port xxxx
  3. 在你的代码现在不需要做tika.initVM()添加tika.TikaClientOnly = True,而不是tika.initVM()
  4. 更改parsed = parser.from_file('/path/to/file')parsed = parser.from_file('/path/to/file', '/path/to/server')您将在步骤2中获得服务器路径。启动tika服务器时-只需将其插入此处即可

祝好运!


小智 6

你能分享一下你正在看的文件吗?最简单的方法是将它附加到我的存储库中的 Github 问题等。

也就是说,如果您尝试使用 OCR 和 Tika,则需要运行 Tika OCR 指南 ( http://wiki.apache.org/tika/TikaOCR ) 并安装 Tesseract。安装 Tesseract 后,您需要仔细检查是否有 tika-server 正在运行的实例(例如,ps aux | grep tika)。如果你这样做了,杀死它(tika-python 在后台运行 Tika REST 服务器作为它与 Tika 的主要接口;在安装 Tesseract OCR 后拥有一个新的运行版本有助于消除任何奇怪的可能性)。

安装 Tesseract OCR 后,没有 tika-server 运行,启动 python2.7 解释器(或脚本),然后执行以下操作:

from tika import parser
parsed = parser.from_file('/path/to/file')
print parsed["content"] # should be the text returned from OCR
Run Code Online (Sandbox Code Playgroud)

哼! - 克里斯