我试图使用Python中的selenium
进行入门性的Web抓取,但是在启动基本的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必需的网络驱动程序。
我尝试在网上搜索潜在的解决方案,但是似乎没有其他人问过有关使用Python运行硒的问题,而且这个错误也相当模糊。
问题here对import 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
答案 0 :(得分:0)
此错误消息...
LookupError: unknown encoding: idna
...表示idna
和utf-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
有关体系结构和 os 的一些系统详细信息将有助于我们以更好的方式调试问题。但是:
解决方案是添加以下导入:
import encodings.idna
注意:确保 pip
位于 PATH 上并且为 9.0.1 或更好。