selenium 与浏览器 以及浏览器驱动版本问题

一、事情的起因
之前因专项需要,需要实现爬虫。技术实现采用Selenium,本身是作为一个Web应用程序测试的工具,但是也广泛的被用于爬虫。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可运行于任何支持JavaScript的浏览器上。显然,Selenium非常适合解决上述我们提到的动态网页加载问题。 这里我们主要讲一下Selenium如何在java平台上使用、以及一些使用过程中出现的坑。

    二、要说再见的PhantomJS

这里需要解释下,使用Selenium需要准备和注意的东西。首先是Selenium的版本,在最新的版本里已经不再支持PhantomJS。这里需要解释下PhantomJS。

PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎。它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVGPhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎。它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVG。

画个重点,PhantomJS可以理解成一个轻量的浏览器,这里有一个无界面(无头)的概念。因为在爬虫中,可能会展开多个标签页,如果要在界面显示,对于机器资源的占用是致命的,所以就需要一个只在程序中打开,但不需要界面显示的浏览器。(最开始的功能测试的时候,还是可以显示界面的,来判断爬虫的代码是否正确)

    三、版本不兼容的坑
但是现在的情况是是Selenium,已经不再支持PhantomJS。主要的原因是,Chrome、Firefox等大厂已经出了驱动可以支持无界面(无头)的操作。PhantomJS作为一个小厂的产品,自然就被弃用。目前还只是警告,但后续的版本应该会直接不支持。
UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
于是到了本文的主题,selenium + 浏览器(火狐、Chrome) + 浏览器驱动,三者的版本兼容和匹配现在是一个大坑。


问题描述:
WebDriverException: Message: Service /usr/bin/geckodriver unexpectedly exite.Status code was: 1
上面这个问题,在selenium Firefox官网都没找到对应的解释,资料比较少。
四、Chrome与Firefox
4.1 Chrome
对于主流的浏览器,Chrome有一个版本的对应表

chromedriver版本支持的Chrome版本
v2.36v64-66
v2.35v62-64
v2.34v61-63
v2.33v60-62
v2.32v59-61
v2.31v58-60
v2.30v58-60
v2.29v56-58
v2.28v55-57
v2.27v54-56
v2.26v53-55
v2.25v53-55
v2.24v52-54
v2.23v51-53
v2.22v49-52
v2.21v46-50
v2.20v43-48
v2.19v43-47
v2.18v43-46
v2.17v42-43
v2.13v42-45
v2.15v40-43
v2.14v39-42
v2.13v38-41
v2.12v36-40
v2.11v36-40
v2.10v33-36
v2.9v31-34
v2.8v30-33
v2.7v30-33
v2.6v29-32
v2.5v29-32
v2.4v29-32
下载chromedriver地址:http://chromedriver.storage.googleapis.com/index.html
目前来看,最新的selenium版本+最新的Chrome+最新的驱动组合是没有问题的。

4.2 Firefox
第二部分是Firefox,这也是上面报错的时,使用的浏览器。firefox与geckodriver对应表,好像没有很明确对应关系,并且一旦不兼容就会报上述的错误,很头疼。Firefox中心提供的是延长支持版(简称“Firefox ESR版”),是专为那些无法或不愿每隔六周就升级一次的企业打造。Firefox ESR 版的升级周期为 42 周,而普通 Firefox 的升级周期为 6 周。
建议还是用回普通版,减少版本兼容上的麻烦。

下载geckodriver地址:https://github.com/mozilla/geckodriver/releases

既然无法有一个对应的表,这里提供一份可行的版本组合。

selenium-server-standlone-3.3.1.jar

geckodriver.exe V.15.0

firefox 48.0.2 /52.0.2
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值