首页 > 解决方案 > 由于带有 Selenium 的 Python 中的变音符号而导致的错误

问题描述

目前,我正在尝试通过重建 Instgram 机器人来尝试我在 Python 中的第一步。

不幸的是,每次我运行我的程序时,我都会收到错误:

SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xe4 in position 23: invalid continuation byte

错误的代码行是:

like_button = lambda: driver.find_element_by_xpath('//span[@aria-label="Gefällt mir"]').click()

该错误是由德语变音符号“ä”引起的,但我必须使用它,因为它是来自 like 按钮的 xpath。

我已经用谷歌搜索了,有解决方案将 # - - coding: utf-8 - - 放在第一行。

不幸的是,它没有帮助。

如果您能给我一些建议,那就太好了。

安团

标签: pythonseleniuminstagram

解决方案


带有变音符号 AFAIK 的 a 在 UTF8 字符集中无法表示。 https://en.wikipedia.org/wiki/UTF-8

我会尝试使用 ISO-8859-1 作为编码。 https://www.ic.unicamp.br/~stolfi/EXPORT/www/ISO-8859-1-Encoding.html

您可以在代码开头对页面内容进行编码: driver.find_element_by_tag_name('body').get_attribute('innerHTML').encode("ISO-8859-1")

或者在尝试/捕获时对元素进行编码以尝试隔离特殊字符。


推荐阅读