Python 3.4 で Selenium を使用して要求された Web サイトから取得した 'Á' を印刷しようとすると、UnicodeEncodeError が発生し続けます。
.pyファイルの先頭に既に定義してあります
# -*- coding: utf-8 -*-
定義は次のようになります:
from selenium import webdriver
b = webdriver.Firefox()
b.get('http://fisica.uniandes.edu.co/personal/profesores-de-planta')
dataProf = b.find_elements_by_css_selector('td[width="508"]')
for dato in dataProf:
print(datos.text)
例外:
Traceback (most recent call last):
File "C:/Users/Andres/Desktop/scrap/scrap.py", line 444, in <module>
dar_p_fisica()
File "C:/Users/Andres/Desktop/scrap/scrap.py", line 390, in dar_p_fisica
print(datos.text) #.encode().decode('ascii', 'ignore')
File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2010' in position 173: character maps to <undefined>
前もって感謝します
ベストアンサー1
もう分かっています。これ答え: エンコーディング エラーは Python からではなく、コンソールが使用しているエンコーディングから発生します。したがって、これを修正する方法は、次のコマンドを実行することです (Windows の場合):
chcp 65001
エンコーディングを UTF-8 に設定してから、プログラムを再度実行します。または、私のように pycharm で作業している場合は、[設定] > [エディター] > [ファイル エンコーディング] に移動して、IDE とプロジェクトのエンコーディングを適切に設定します。