Python 3 未找到 Unicode

Python 3 Unicode not found

我知道 unicode 在 python 3 中已更改为 str,但无论我如何编写此代码,我都会遇到同样的问题,谁能告诉我为什么?

我正在为一组特定的网络爬虫使用样板管道:

for urls in allUrls:
    fileW = open('article('+ str(counter)+')', 'w')
    articleDate = Article(urls)
    articleDate.download()
    articleDate.parse()
    print(articleDate.publish_date)
    fileW.write(str(Extractor(extractor='ArticleExtractor', url=urls).getText() + "\n\n\n" + str(articleDate.publish_date)+"\n\n\n"))
    fileW.close
    counter +=1

错误:

 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

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

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

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

据我所知,您有几种选择:

  1. 找到此包的 Python 3 端口。至少有几个 (here's one and here's another)。
  2. 自己将包移植到 Python 3(如果这是唯一的错误,您可以简单地将该行更改为使用 str,但以后的更改可能会导致包的其他部分出现问题). This official tool should be of assistance; this official guide 也应该。
  3. 将您的项目移植到 Python 2.7 并继续使用相同的包。

希望对您有所帮助!