python selenium 报错UnicodeEncodeError: 'ascii' codec can't encode characters in position 487-490: ord

使用python+selenium访问百度,并打印出页面的page_source,但是报错 UnicodeEncodeError: 'ascii' codec can't encode characters in position 487-490: ordinal not in range(128)

解决办法:报这个错是因为编码问题,可能网页或者网页标题是中文,且网页的源文件不是utf-8编码的,需要转换成utf-8编码;

print(driver.page_source.encode("utf-8"))

字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。 decode的作用是将其他编码的字符串转换成unicode编码,encode的作用是将unicode编码转换成其他编码的字符串。代码中字符串的默认编码与代码文件本身的编码一致,

如:s='百度'

如果是在utf-8的文件中,该文件就是utf-8的编码。

通常,在没有指定特定的编码方式时,都是使用系统默认的编码创建的代码文件

修改之前的代码如下:

 

from selenium import webdriver

from time import sleep

 

options = webdriver.ChromeOptions()

options.add_argument("--headless")

options.add_argument("-–no-sandbox")

options.add_argument("--disable-dev-shm-usage")

options.add_argument("--disable-gpu")

options.add_argument("blink-settings=imagesEnabled=false")

options.add_argument("start-maximized")

options.add_argument("disable-infobars")

options.add_argument("--disable-extensions")

 

driver  = webdriver.Chrome(executable_path="/usr/local/bin/chromedriver",chrome_options=options)

driver.get("https://www.baidu.com/")

# print(response.text)

 

print(driver.page_source)

sleep(10)

driver.close()

只需要在打印的时候,修改一下下面语句:

print(driver.title.encode("utf-8"))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值