问题描述
>>
我看到了这个话题 Python Tika error: URLError: <urlopen error unknown url type: c>
同样的事情现在发生在我身上。这令人沮丧。
我在那个帖子里发了一个帖子,但有人在评论中告诉我要发一个新帖子。所以它来了。
我在谷歌上搜索并浏览了 StackOverflow,但没有发现任何有意义的内容。
python 3.9.2(最近从 python 3.8.2 或类似的东西升级(比如 03/08/21)我忘记了) tika 1.24(python 包) tika 1.24.1(jar 文件(运行良好))
- 最初我将 powershell $env: 变量设置为指向 tika.jar 文件,该文件直到最近都运行良好。在 python 中启动时,tika 将使 python 解释器搜索 tika REST api 以获取最新的解析器;所以我将 $env: 变量指向 tika.jar 文件,这样它就会考虑搜索...在我的机器上找到 tika.jar 文件并使用它。
- 现在我收到以下错误消息...
2021-03-12 18:14:46,032 [MainThread] [INFO] 检索 C:\PATH\TO\tika-server-1.24.1.jar 到 C:\PATH\TO\Local\Temp\tika-server.jar。追溯(大多数 最近通话最后一次):文件 “C:\CODING\python392\lib\site-packages\tika\tika.py”,第 798 行,在 获取RemoteJar urlretrieve(urlOrPath,destPath) 文件“C:\CODING\python392\lib\urllib\request.py”,第 239 行,在 urlretrieve 中 使用 contextlib.closure(urlopen(url,data)) 作为 fp: File "C:\CODING\python392\lib\urllib\request.py",line 214,in urlopen return opener.open(url,data,timeout) File "C:\CODING\python392\lib\urllib\request.py",line 517,in open response = self._open(req,data) 文件“C:\CODING\python392\lib\urllib\request.py”,第 539 行,在 _open return self._call_chain(self.handle_open,'unkNown',File "C:\CODING\python392\lib\urllib\request.py",line 494,in _call_chain 结果 = func(*args) 文件“C:\CODING\python392\lib\urllib\request.py”,第 1417 行,在 未知_打开 引发 URLError('unkNown url type: %s' % type) urllib.error.URLError:
在处理上述异常的过程中,又发生了一个异常:
回溯(最近一次调用最后一次):文件“c:\PATH\TO#tika test.py”,第 75 行,在 TIKA_FUNCTION(文件夹)文件“c:\PATH\TO#tika test.py”,第 38 行,在 TIKA_FUNCTION rawtext = parser.from_file(filename) File "C:\CODING\python392\lib\site-packages\tika\parser.py",line 40,in 从文件 输出 = parse1(服务,文件名,serverEndpoint,headers=headers,config_path=config_path, requestOptions=requestOptions) 文件 “C:\CODING\python392\lib\site-packages\tika\tika.py”,第 336 行,在 解析1 status,response = callServer('put',serverEndpoint,service,f,File "C:\CODING\python392\lib\site-packages\tika\tika.py",line 531,在呼叫服务器中 serverEndpoint = checkTikaServer(scheme,serverHost,port,tikaServerJar,classpath,config_path) 文件 “C:\CODING\python392\lib\site-packages\tika\tika.py”,第 592 行,在 检查TikaServer getRemoteJar(tikaServerJar,jarPath) 文件“C:\CODING\python392\lib\site-packages\tika\tika.py”,第 808 行,在 获取RemoteJar urlretrieve(urlOrPath,in _call_chain 结果 = func(*args) 文件“C:\CODING\python392\lib\urllib\request.py”,第 1417 行,在 未知_打开 引发 URLError('unkNown url type: %s' % type) urllib.error.URLError:
-
我看到了原帖的所有评论。 (原帖)
-
没用。
-
我一直在更改 $env: 变量以包含诸如“file:///C:/tika/path.jar”之类的内容(尝试了 f:/// 和 f://) .甚至彻底删除 $env: 变量,以便获取最新的解析器信息或其他信息。
-
没用。
-
我正在尝试弄清楚这个主题中的所有内容https://bugs.python.org/issue6193
-
但这似乎与我的情况有点不同,因为 python.org 线程中的问题是用户要求 urllib 在脚本中打开文件,而我并没有完全这样做。
-
现在有可能在 python.org 线程中描述的修复程序使用 file:/// 命令超出了我的头脑,因为我不是最好的编码员,我不确定我是否理解它。
-
在 python.org 线程讨论中,每个人都在说“就做这个 file:/// 事情”,但没有人真正以我能理解的方式解释它。
-
但这似乎仍然是一个完全不同的比较,因为如果 urllib 无法处理打开文件,那么当我几个月前最初设置它时,整个过程永远不会开始。
-
这让我相信问题确实在于安装 python 3.9.2 和卸载 3.8.2 破坏了脚本的工作能力。但不知何故,这似乎是错误的。 (如果不是,我该如何修复?使用 Maven 重新安装 tika.jar?)
-
我想有可能是默认的 urllib 模块被更新了,但是那个 python.org 线程是从 2009 年开始的。现在是 2021 年。在 2020 年,我的程序脚本运行得很好。
我的下一步将是……调查这个小小的……splittype urllib 方法。
但它真的会产生任何东西吗?不太确定。
非常感谢您。
编辑:tika --dump-current-config 下面
Mar 14,2021 10:15:23 PM org.apache.tika.config.InitializableProblemHandler$3 handleInitializableProblem
WARNING: J2KImageReader not loaded. jpeg2000 files will not be processed.
See https://pdfBox.apache.org/2.0/dependencies.html#jai-image-io
for optional dependencies.
Mar 14,2021 10:15:24 PM org.apache.tika.config.InitializableProblemHandler$3 handleInitializableProblem
WARNING: Tesseract OCR is installed and will be automatically applied to image files unless
you've excluded the TesseractOCRParser from the default parser.
Tesseract may dramatically slow down content extraction (TIKA-2359).
As of Tika 1.15 (and prior versions),Tesseract is automatically called.
In future versions of Tika,users may need to turn the TesseractOCRParser on via TikaConfig.
Mar 14,2021 10:15:24 PM org.apache.tika.config.InitializableProblemHandler$3 handleInitializableProblem
WARNING: org.xerial's sqlite-jdbc is not loaded.
Please provide the jar on your classpath to parse sqlite files.
See tika-parsers/pom.xml for the correct version.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<properties>
<!--for example: <mimeTypeRepository resource="/org/apache/tika/mime/tika-mimetypes.xml"/>-->
<service-loader dynamic="true" loadErrorHandler="IGnorE"/>
<encodingDetectors>
<encodingDetector class="org.apache.tika.detect.DefaultEncodingDetector"/>
</encodingDetectors>
<translator class="org.apache.tika.language.translate.DefaultTranslator"/>
<detectors>
<detector class="org.apache.tika.detect.DefaultDetector"/>
</detectors>
<parsers>
<parser class="org.apache.tika.parser.DefaultParser"/>
</parsers>
</properties>
来自 C:\PATH\TO\tika\parser\pdf 的 tika-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--Licensed to the Apache Software Foundation (...cutout...)
-<properties>
-<parsers>
-<parser class="org.apache.tika.parser.pdf.PDFParser">
-<params>
<param type="bool" name="sortByPosition">true</param>
</params>
</parser>
</parsers>
</properties>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)