Apache Tika на Python извлекает текст из PDF на MacBook Pro, но не на сервере Windows
Как и выше, я извлекаю текст из нескольких документов, используя tika в python, но в одном конкретном PDF-файле он извлекает текст на моей машине для разработки (MacBook Pro), но не на Windows Server 2012, где он возвращает NoneType.
Очень запутанно, сначала я подумал, библиотеки, но он использует тот же файл JAR из Apache (1.19.1)
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.
Есть идеи?
1 ответ
Оболочка Python Tika возвращает None, поэтому вам нужно разобраться, почему это произошло.
Сервер Тика работает? Если нет, то почему нет? У вас установлена подходящая Java VM для использования? У вас есть разрешение на выполнение банки? Делает ли код Python предположения о вашей системе Windows, которые не соответствуют действительности (например, что jar-файлы являются исполняемыми, или что VM по умолчанию является правильной и т. Д.).
Если сервер tika работает, то работает ли tika правильно или выдает другие ошибки? Если вы помещаете PDF-файл через tika-сервер, вы запускаете с того же фляги, это работает или вы видите ошибку? Можете ли вы отладить, чтобы увидеть, что, если таковые имеются, ошибки возвращаются из веб-запроса в библиотеке Python (точка останова и т. Д.)?