python - 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
解决方案
此错误消息...
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
您在体系结构和操作系统方面的一些系统细节将帮助我们以更好的方式调试您的问题。然而:
- 根据这个讨论,这个问题是在 Python 的嵌入式发行版中观察到的。
- 根据这个讨论,这个问题是在IronPython中观察到的。
- 根据与PyInstaller的讨论。
解决方案
解决方案是添加以下导入:
import encodings.idna
注意:确保它pip
在PATH上并且是9.0.1或更高版本。
推荐阅读
- node.js - 如何从我的快速服务器端口监听我的客户端端口?
- excel - VBA Excel MacOs 2019 pdf导出到当前目录
- python - AWS EMR 上的“搜索时找不到有效的 SPARK_HOME”
- javascript - ReactJS - 带有惰性组件的 document.querySelectorAll()
- python - 无法捕获 EOFError
- javascript - Javascript根据值更改字体颜色
- windows - node.js 和 VisualStudio 真的是构建 typescript 的唯一维护良好的选项吗?
- r - 轴标签中的绝对值
- sql - 如何将连续日期合并为一个日期?
- c - 我试图用 C 编写一个 Discomfort Index 程序,但我卡住了