当前位置: 首页 > 工具软件 > Boilerpipe > 使用案例 >

在Python下运行boilerpipe 时报错

空慈
2023-12-01

运行boilerpipe 时报以下错误:

Traceback (most recent call last):
  File "/Users/Adrian/anaconda3/lib/python3.6/site-packages/boilerpipe/extract/__init__.py", line 45, in __init__
    self.data = unicode(self.data, encoding)NameError: name 'unicode' is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "webcrawl.py", line 26, in <module>
    fileW.write(str(Extractor(extractor='ArticleExtractor', url=urls).getText() + "\n\n\n" + str(articleDate.publish_date)+"\n\n\n"))
  File "/Users/Adrian/anaconda3/lib/python3.6/site-packages/boilerpipe/extract/__init__.py", line 47, in __init__
    self.data = self.data.decode(encoding)UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

定位至关键信息:

"/Users/Adrian/anaconda3/lib/python3.6/site-packages/boilerpipe/extract/__init__.py", line 47, in __init__
    self.data = self.data.decode(encoding)UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

找到以下解决方法:

错误消息指向一行boilerpipe/extract/__init__.py,该行调用unicode内置函数。

我假设下面的链接是您正在使用的包的源代码。如果是这样,它似乎是为Python 2.7编写的,如果你看到这个文件的末尾,你可以看到它:

https://github.com/misja/python-boilerpipe/blob/master/setup.py

据我所知,你有几个选择:

  1. 找到这个包的Python 3端口。那里至少有几个(这里是一个这是另一个)。
  2. 将程序包自行移植到Python 3(如果这是唯一的错误,您可以简单地更改该行以使用str,但稍后的更改可能会导致程序包的其他部分出现问题)。这个官方工具应该有所帮助; 这个官方指南也应该如此。
  3. 将项目移植到Python 2.7并继续使用相同的包。

我希望这有帮助!

按照以上解决方案,成功解决。

参考资料:

https://stackoverflow.com/questions/48234632/python-3-unicode-not-found 

 类似资料: