python java Tika urllib.error.URLError: <urlopen error unknown url type: c>

问题描述

>>
我看到了这个话题 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 文件(运行良好))

  1. 最初我将 powershell $env: 变量设置为指向 tika.jar 文件,该文件直到最近都运行良好。在 python 中启动时,tika 将使 python 解释器搜索 tika REST api 以获取最新的解析器;所以我将 $env: 变量指向 tika.jar 文件,这样它就会考虑搜索...在我的机器上找到 tika.jar 文件并使用它。
  2. 现在我收到以下错误消息...

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:

  1. 我看到了原帖的所有评论。 (原帖)

  2. 我根据评论之一更改了 Windows Defender 防火墙以接受 tika.jar 文件

  3. 没用。

  4. 我一直在更改 $env: 变量以包含诸如“file:///C:/tika/path.jar”之类的内容(尝试了 f:/// 和 f://) .甚至彻底删除 $env: 变量,以便获取最新的解析器信息或其他信息。

  5. 没用。

  6. 我正在尝试弄清楚这个主题中的所有内容https://bugs.python.org/issue6193

  7. 但这似乎与我的情况有点不同,因为 python.org 线程中的问题是用户要求 urllib 在脚本中打开文件,而我并没有完全这样做。

  8. 现在有可能在 python.org 线程中描述的修复程序使用 file:/// 命令超出了我的头脑,因为我不是最好的编码员,我不确定我是否理解它。

  9. 在 python.org 线程讨论中,每个人都在说“就做这个 file:/// 事情”,但没有人真正以我能理解的方式解释它。

  10. 关于 urllib splittype 方法一个对另一个链接的线程间引用,但该链接已失效。

  11. 但这似乎仍然是一个完全不同的比较,因为如果 urllib 无法处理打开文件,那么当我几个月前最初设置它时,整个过程永远不会开始。

  12. 这让我相信问题确实在于安装 python 3.9.2 和卸载 3.8.2 破坏了脚本的工作能力。但不知何故,这似乎是错误的。 (如果不是,我该如何修复?使用 Maven 重新安装 tika.jar?)

  13. 我想有可能是认的 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 (将#修改为@)