LookupError:未知编码:使用Selenium和Python的idna错误

问题描述 投票:0回答:1

我试图用Python中的selenium进行介绍性网络抓取,但是当我启动一个基本的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安装了Chrome必备的webdriver。

我尝试在网上搜索可能的解决方案,但似乎没有其他人问过这与使用Python运行selenium有关,而且这个bug也相当含糊。

编辑

问题hereimport encodings.idna的答案给了我在Python中找不到的模块的新错误。

另外,我的系统是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
python selenium selenium-webdriver python-requests python-unicode
1个回答
0
投票

此错误消息...

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

注意:确保pip位于PATH上且为9.0.1或更高版本。

© www.soinside.com 2019 - 2024. All rights reserved.