欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在Python下运行boilerpipe 时报错

程序员文章站 2022-05-10 17:21:44
...

运行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://*.com/questions/48234632/python-3-unicode-not-found