私はスクレイピーを使用して Web サイトからデータを抽出しています。MysqlDB を使用してデータを mysql データベースに保存しています。このスクリプトは英語のサイトでは機能しますが、スウェーデンのサイトで試してみると、次のようになります。
self.db.query(insertion_query)
exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 156:
ordinal not in range(128)
国際文字の使用を示すために、スクレイピング プロセスに関連する各ファイルの先頭に次の行を追加しました。 # - - コーディング: utf-8 - -
しかし、私はまだエラーが発生します。Python が英語以外の文字を受け入れるには、他に何が必要ですか? 完全なスタック トレースは次のとおりです。
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\scrapy-0.14.3-py2.7-win32.egg\scrapy\middleware.py",
line 60, in _process_
chain
return process_chain(self.methods[methodname], obj, *args)
File "C:\Python27\lib\site-packages\scrapy-0.14.3-py2.7-win32.egg\scrapy\utils\defer.py",
line 65, in process_
chain
d.callback(input)
File "C:\Python27\lib\site-packages\twisted\internet\defer.py", line 368, in callback
self._startRunCallbacks(result)
File "C:\Python27\lib\site-packages\twisted\internet\defer.py", line 464, in
_startRunCallbacks
self._runCallbacks()
--- <exception caught here> ---
File "C:\Python27\lib\site-packages\twisted\internet\defer.py", line 551, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "C:\Python27\tco\tco\pipelines.py", line 64, in process_item
self.db.query(insertion_query)
exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 156:
ordinal not in range(128)