前言
这大概率是使用 selenium 运行爬虫程序时出现的异常。
有没有发现,网上很多教学使用 selenium 动态加载页面的爬虫程序,只简简单单的一行代码就可以识别到 chrome 浏览器,但是,当你把代码原封不动复制过来以后却怎么也运行不起来,出现类似标题中【cannot find dict 'desiredCapabilities'】的异常。明明是按照教程一步一步操作的,结果却大相径庭,气不气,博主写错了?是人性的扭曲?还是道德的沦丧?
针对这个问题,我花时间简单求证了一下,以我本地测试用的 chrome 浏览器为例,结论:并不是博客写错了,只是不够严谨,或者他们自己都没有意识到这个问题,而是由于你当初没有把 chrome 浏览器安装在默认C目录下。
正文
针对这个问题,我查阅了许多前辈的博客,并且亲自编写的了大量代码测试,总结如下。
一、异常描述
先来看看网上你一般能查到的 selenium 注册 webdriver 的代码:
browser = webdriver.Chrome() # 打开浏览器
你没有看错,它后面还注释说明了“这一行代码就能完美打开 chrome 浏览器”,结果呢?如果你 try...except... 一下就会发现这行代码会报出标题中的异常:
Message: unknown error: cannot find dict 'desiredCapabilities'
(Driver info: chromedriver=2.9.248315,platform=Windows NT 6.3 x86_64)
二、异常原因
找不到默认谷歌浏览器dict。