首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python如何在现有jar文件中使用tika而无需重新下载

python如何在现有jar文件中使用tika而无需重新下载
EN

Stack Overflow用户
提问于 2019-06-12 18:20:27
回答 3查看 2.1K关注 0票数 13

我正在使用Tika,我意识到每次下载jar文件并将其放入临时文件夹时

代码语言:javascript
复制
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,需要一些时间才能下载。

这是我使用的代码:

代码语言:javascript
复制
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, '/path/to/server')替换parser.from_file(path)

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

EN

回答 3

Stack Overflow用户

发布于 2020-03-06 18:03:51

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

TIKA_SERVER_JAR =‘路径_OF_FOLDER_CONTAINING_TIKA_SERVER_JAR’。

票数 2
EN

Stack Overflow用户

发布于 2021-11-08 08:26:27

如果您不想添加环境变量,您可以更改tika查找tika-server.jar文件的目录,代码如下。

代码语言:javascript
复制
from tika import tika
tika.TikaJarPath = r'TIKA_SERVER_PATH'

在TIKA_SERVER_PATH中,jar文件名应该是tika-server.jar(名称不应该包括版本),而且.md5文件必须在那里。如果.md5文件的版本不是正确的tika-server.jar,则此方法不起作用,并且tika将删除您的文件并下载默认版本。

票数 1
EN

Stack Overflow用户

发布于 2021-07-05 21:54:52

在尝试了几乎所有的方法并调试了tika.py库代码之后,我发现您必须同时设置这两个变量才能使此攻击生效。

代码语言:javascript
复制
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库:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56559850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档