0

如上所述,我在 python 中使用 tika 从多个文档中提取文本,但在一个特定的 pdf 上,它在我的开发机器(MacBook Pro)上提取文本,而不是在 Windows Server 2012 上提取文本,它返回“NoneType”。

非常令人困惑,起初我认为是库,但它使用的是来自 apache (1.19.1) 的相同 jar 文件

try:
    headers = {'X-Tika-PDFextractInlineImages': 'true',}  
    data = parser.from_file(pathtofile, serverEndpoint=self.TIKA_SERVER, headers=headers)
    charstoreturn = data['content'].strip().split()[:limit]
    charstoreturn = ' '.join(charstoreturn).replace("\n", " ").replace('"', "'").replace(",","").replace("’","'")
    return True, charstoreturn
except Exception as err:
    return False, "error {} on file: {}.\n".format(str(err), pathtofile)

TIKA_SERVER 是 ' http://localhost:1234 ' pathtofile 是我正在测试的文件失败

Windows 上的错误:错误“NoneType”对象在文件中没有属性“strip”:\testdata\test2.pdf。

有任何想法吗?

4

1 回答 1

0

python tika 包装器返回 None,因此您需要深入了解发生这种情况的原因。

tika 服务器是否正在运行?如果不是,为什么不呢?您是否安装了合适的 Java VM 供其使用?你有权限执行jar吗?Python 代码是否对您的 Windows 系统做出了不正确的假设(例如,jar 是可执行的,或者默认 VM 是正确的等等)。

如果 tika 服务器正在运行,那么 tika 是否正常工作或出现其他错误?如果您通过 tika 服务器放置 PDF,您从同一个 jar 开始,这会起作用还是给您一个错误?您能否调试以查看 python 库(断点等)中的 Web 请求返回的错误(如果有)?

于 2018-12-05T13:26:41.640 回答