这个问题在这里已有答案:
当我尝试打印一个'Á'时,我一直得到UnicodeEncodeError,这是我在python 3.4中使用selenium请求的网站 .
我已经在我的.py文件的顶部定义了
# -*- coding: utf-8 -*-
def是这样的:
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 回答
已经弄清楚了 . 正如在this回答中所指出的,编码错误不是来自python,而是来自控制台正在使用的编码 . 所以解决它的方法是运行命令(在Windows中):
将编码设置为UTF-8然后再次运行程序 . 或者,如果像我一样处理pycharm,请转到设置>编辑器>文件编码,并相应地设置IDE和项目编码 .