【问题标题】:error because of umlaut in Python with Selenium [duplicate]由于带有 Selenium 的 Python 中的变音符号导致的错误 [重复]
【发布时间】:2019-02-21 20:58:23
【问题描述】:

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

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

SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xe4 in 位置 23:无效的继续字节

错误的代码行是:

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

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

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

不幸的是,它没有帮助。

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

团团

【问题讨论】:

  • 您是不是不小心使用了 Python 2 并且忘记在 unicode 字符串前面加上 u 前缀?
  • 嘿,不。我正在使用 python 3.8(64 位)

标签: python selenium instagram


【解决方案1】:

带有变音符号 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")

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

【讨论】:

  • 嘿,我真的不明白如何在我的程序中键入它。我应该将其复制并粘贴到我的代码的第一行吗?
  • 请注意,这是我编程的第一步
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
  • 1970-01-01
  • 2014-11-11
  • 1970-01-01
相关资源
最近更新 更多