UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 9: ordinal not in range(128)
2018-02-27 15:44
573 查看
# coding=utf-8 import time from selenium import webdriver class GetSubString(object): def get_search_result(self): driver = webdriver.Ie() driver.maximize_window() driver.implicitly_wait(8) driver.get('http://www.baidu.com') driver.find_element_by_id('kw').send_keys('selenium') time.sleep(1) search_result_string = driver.find_element_by_xpath("//*/div[@class='nums']").text print(search_result_string) new_string = search_result_string.split('约')[1] print(new_string) last_string = new_string.split('个')[0] print(last_string) getstring = GetSubString()getstring.get_search_result()
上面的程序在编译后报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 9: ordinal not in range(128)
将:
new_string = search_result_string.split('约')[1]
last_string = new_string.split('个')[0]
改成:
new_string = search_result_string.split(u'约')[1]
last_string = new_string.split(u'个')[0]
后再编译就没问题了。
汉字和特殊符号属于Unicode编码,在python环境中代码本身是用Ascii进行解码的,代码中有Ascii无法解码的内容要告知python怎么解码,
在上面的代码中,最上面一行加入了# coding=utf-8,那么当前的编码方式就变成了utf-8,同样也无法解码Unicode编码,所以在前面加上
u是告知系统此内容要以Unicode的方式解码。
以上内容只是我自己的理解,在解决问题的此件参考的百度资源链接在下方附上,可自行参考。
Unicode编码——中文和特殊字符的范围:http://blog.csdn.net/leopadus/article/details/68961344
类似问题的解决链接:https://segmentfault.com/q/1010000005941382?_ea=958769
Python字符编码:http://python.jobbole.com/85482/
人机交互之字符编码:http://selfboot.cn/2014/08/28/character_encoding/
相关文章推荐
- 解决Python字符串处理出现错误UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe4 in position 108: ordinal not in range(128)
- 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
- UnicodeDecodeError:'ascii' codec can't decode byte 0xe4 in position 25: ordinal not in range(128)
- 【Python】'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
- 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 87: ordinal not in range(128)
- 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 1: ordinal not in range(128)
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 9: ordinal not in range(128)
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)
- 解决‘ascii’ codec can’t decode byte 0xe5 in position 108: ordinal not in range(128)
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
- 解决“UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 3: ordinal not in range(128”
- 解决unicodedecodeerror ascii codec can’t decode byte 0xd7 in position 9 ordinal not in range(128)
- 解决UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6: ordinal not in range(128)
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position 7: ordinal not in range(128)
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 117: ordinal not in range(128)
- 解决UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)