python如何将tika与现有的jar文件一起使用而无需再次下载

时间:2019-06-12 10:20:26

标签: python apache-tika

我正在使用Tika,我意识到每次下载jar文件并将其放置在Temp文件夹中

Retrieving http://search.maven.org/remotecontent?filepath=org/apache/tika/tika-server/1.19/tika-server-1.19.jar to C:\Users\asus\AppData\Local\Temp\tika-server.jar.
Retrieving http://search.maven.org/remotecontent?filepath=org/apache/tika/tika-server/1.19/tika-server-1.19.jar.md5 to C:\Users\asus\AppData\Local\Temp\tika-server.jar.md5.

问题在于jar文件大小约为60MB,这需要一些时间才能下载。

这是我正在使用的代码:

from tika import parser

def get_pdf_text(path):
    parsed = parser.from_file(path):
    return parsed['content']

我发现的唯一解决方法是:

1-使用java -jar tika-server-x.x.jar --port xxxx

手动运行jar

2-使用tika.TikaClientOnly = True

3-用parser.from_file(path)代替parser.from_file(path, '/path/to/server')

但是我不想手动运行jar文件。如果我可以使用Python自动运行jar文件并使用它设置tika而不重新下载,那就更好了。

2 个答案:

答案 0 :(得分:0)

要解决此问题,您应该将环境变量添加到tika服务器jar中,并指定包含tika jar文件的路径文件夹。

TIKA_SERVER_JAR ='PATH_OF_FOLDER_CONTAINING_TIKA_SERVER_JAR'。

答案 1 :(得分:0)

在尝试了几乎所有方法并调试 tika.py 库代码后,我发现您必须设置这两个变量才能使此 hack 工作。

TIKA_SERVER_JAR="/path_to_tika_server/tika-server.jar"
TIKA_SERVER_JAR="/path_to_tika_server"

您还需要提供 .md5 签名文件,因为由于 Tika 1.18 版未提供 .md5 文件(改为提供 sha512 签名,请参阅 https://archive.apache.org/dist/tika/)。所以你需要欺骗图书馆接受你下载的文件。

或者有人可以修补python库:)