UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 9: ordinal not in range(128)

# 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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值