首页 > 解决方案 > LookupError:未知编码:Selenium 和 Python 的 idna 错误

问题描述

我试图selenium在 Python 中进行介绍性的网络抓取,但是当我启动一个基本的 Chrome 实例时,我不断收到这个神秘的错误:

LookupError: unknown encoding: idna

使用以下代码时:

from selenium import webdriver

url = 'http://www.webscrapingfordatascience.com/complexjavascript/'

driver = webdriver.Chrome()
driver.get(url)

我用brew cask install chromedriver.

我尝试在网上搜索潜在的解决方案,但似乎没有其他人就使用 Python 运行 selenium 提出这个问题,而且这个错误也相当模糊。

编辑

这里的问题的回答import encodings.idna给了我在 Python 中找不到 Module 的新错误。

另外,我的系统是Mac OS 10.11的mbp,Python是3.7.2(Clang 8.0.0),pip是=19.0.3.

echo $PATH给我以下输出:

/Users/Michael/miniconda3/bin:/Users/Michael/intelpython3/bin:/Users/Michael/miniconda3/bin:/Users/Michael/miniconda3/bin:/opt/local/bin:/opt/local/sbin:/usr/local/sbin:/Users/Michael/anaconda3/lib/python3.6/site-packages:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Users/Michael/anaconda3/bin:/Users/Michael/anaconda3/bin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin:/Library/TeX/texbin’:/Users/Michael/intelpython3/bin

标签: pythonseleniumselenium-webdriverpython-requestspython-unicode

解决方案


此错误消息...

LookupError: unknown encoding: idna

...表示和之间存在编码/解码错误。idnautf-8

这个错误来自models.py_get_idna_encoded_host(host)的方法,定义如下:

@staticmethod
def _get_idna_encoded_host(host):
    import idna

    try:
        host = idna.encode(host, uts46=True).decode('utf-8')
    except idna.IDNAError:
        raise UnicodeError
    return host

您在体系结构操作系统方面的一些系统细节将帮助我们以更好的方式调试您的问题。然而:


解决方案

解决方案是添加以下导入:

import encodings.idna

注意:确保它pipPATH上并且是9.0.1或更高版本。


推荐阅读