0

Python 3.4.2

我正在使用 Scrapinghub API 的客户端接口,可以在这里找到:

https://github.com/scrapinghub/python-scrapinghub

我刮了一个网站,想要获取并打印这些项目

for item in job.items():
  print(item)

在 python 解释器中,这工作正常,但是当我在脚本中导出我的代码(fe 'test.py' 并使用 'python3 test.py' 运行它时,会发生错误,它说:

Traceback (most recent call last):
File "test.py", line 24, in <module>
print(insert_statement)
UnicodeEncodeError: 'ascii' codec can't encode character '\xdf' in position 247: ordinal not in range(128)

第 24 行的文本是这样的: [ ... ] Tobias Weiß [...]

我已经运行了“dpkg-reconfigure locales”并将其设置为“de_DE.UTF-8 UTF-8”,但这似乎不是问题。

对于每个结果,我是否必须将项目 dict 转换为 utf8,或者是否有其他我看不到的解决方案。

from scrapinghub import Connection

conn = Connection('1234567890')
project = conn[123456]



jobs = project.jobs(state='finished')

for job in jobs:
    if "consumed" not in job.info['tags']:
            for item in job.items():
                   print(item)

问候

4

1 回答 1

2

我找到了一个似乎可行的解决方案。

在外壳中,我必须输入:

export LC_ALL=C.UTF-8
export LANG=C.UTF-8

我也遵循了这里的指示:https ://blog.scrapinghub.com/2016/08/17/introducing-scrapy-cloud-with-python-3-support/

引入支持 Python 3 的 Scrapy Cloud

总之谢谢大家!

于 2017-03-17T15:40:59.113 回答