一、链接
火狐的各历史版本:https://ftp.mozilla.org/pub/mozilla.org//firefox/releases/
火狐各驱动历史版本:https://github.com/mozilla/geckodriver/releases/
谷歌驱动的各历史版本:https://registry.npmmirror.com/binary.html?path=chromedrive/
谷歌浏览器的历史版本:https://downzen.com/en/windows/google-chrome/versions/
二、安装驱动及调用(以火狐为例)
- 首先可以去链接提供的地址下载火狐的驱动
注意:仔细阅读驱动的文档,不要随便下载,驱动版本要和火狐浏览器的版本对应,否则会报错 - 下载对应版本的火狐浏览器
- 再把驱动放在相应浏览器的根目录下,并添加到环境变量PATH中
- 调用(还需要下载selenium包)
from selenium import webdriver
browser = webdriver.Firefox() //selenium4之前的调用
browser.get(url)
browser.close() //关闭浏览器 - 按照以上的步骤进行操作一般是没有问题。
三、代码报错:NoSuchDriverException
随后再使用selenium爬虫的时候发现,发现原来能用的firefox 突然就报错说用不了
一般有以下原因,大家可以一一对应:
- 浏览器版本和驱动版本对应不上。可能有人会问那我原来为什么可以成功呢?大概率是因为你的浏览器自动升级了,可以点击浏览器右上角三条横线处->帮助->关于firefox查看浏览器版本,如果已经更新到最新版本就需要你重新下载原版本的浏览器了(注意标签这些重要内容导出了之后再卸载)。
那么如何解决浏览器自动更新?可以点击浏览器右上角三条横线处->设置->常规处。 - 驱动位置。驱动需要放在相应浏览器的根目录下,并添加到环境变量PATH中。
- 驱动下载错误(可能你的版本下载对了,但驱动的类型下载错误),导致有时selenium代码可以执行,有时突然不能执行。
当你直接点击geckodriver.exe时,如果出现上图提示,那么恭喜你,我们遇见的问题一模一样,下载驱动时候粗心了!请前往链接所提供的地址中,重新下载驱动。
注意下载对应你电脑系统类型的驱动!!! - 使用 python selenium 调用驱动时,总是会去github检查驱动的最新版本,但我们又知道内网访问github时而成功,时而失败,当无法访问到github时,也会报错
解决方法:
如上图所示,卡卡尝试了下使用selenium4新版的调用,发现似乎解决了检查驱动版本的问题,但不知道为什么。如果有小伙伴知道,可以评论分享,感谢!!!