2015-09-03 7 views
35

Python 3.4'te selenyum kullanılarak istenen bir web sitesinden aldığım bir 'Á' yazdırmaya çalışırken UnicodeEncodeError'ı kullanmaya devam ediyorum.UnicodeEncodeError: 'charmap' codec'i ' u2010' karakterini kodlayamıyor: karakter eşlemeleri <undefined>

Zaten benim .py dosyası üstündeki tanımlanan

# -*- coding: utf-8 -*-

def böyle bir şeydir:

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) 

ve istisna:

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> 

teşekkürler önceden

+0

Aynı kodlama sorunu için, ancak bir dosyaya yazmak için bir çözüm biliyor musunuz? – Gennadiii

cevap

131

Zaten bunu anladım. this cevabında belirtildiği gibi, kodlama hatası python'dan değil, konsolun kullandığı kodlamadan gelmez. Yani bunu düzeltmek için bir yol (pencerelerde) komutunu çalıştırmaktır: UTF-8'e kodlamasını ayarlar ve sonra programı yeniden çalıştırın

chcp 65001 

. Ya da benim gibi pycharm üzerinde çalışıyorsanız, Ayarlar> Editör> Dosya Kodlamalarına gidin ve IDE ve Proje kodlamalarını aktif olarak ayarlayın.

+4

Bir milyon upvotes. konsol değil python oldu. – AwokeKnowing

+0

pyCharm kodlamasını değiştirdiysem bile bana yine aynı hatayı veriyor (windows konsol ile çözdüm, ama artık pankreas içinde çalışamıyorum) – Soorena

+0

Her zaman bu hatayı yakaladım. Harika bir çözüm. Bunun için milyonlarca upvotes! –

İlgili konular