ubuntu下安装selenium以及chromedriver、geckodriver和phantomjs等驱动

来源:互联网 发布:淘宝大学的vip课靠谱吗 编辑:程序博客网 时间:2024/05/17 02:34

环境:
系统 : Ubuntu14.04 64位
谷歌浏览器版本 : chrome60
火狐浏览器版本 : firefox54


做python爬虫,有些数据需要点击页面后才能获取到,因此需要使用selenium来进行一些操作。
selenium安装方法:

pip install selenium

一般来说,selenium用到的浏览器有三个,可视化的有界面的为chrome和firefox,无界面的为phantomjs。其中,phantomjs速度较快,效率较高,但是在测试阶段可能不是那么方便,接下来就介绍一下其他两种driver的安装方法。


首先介绍chromedriver的安装方法:

使用chrome浏览器需要配置好chromedriver,chromedriver有很多版本和浏览器版本需要一一对应,否则无法使用。
查看chrome版本 : 点击浏览器右上角–>关于chromium。
chromedriver 下载地址:链接
根据系统选择对应版本即可。我下的是2.31–>chromedriver_linux64.zip。
如何查看driver和浏览器版本的对应关系 : 最新链接

----------ChromeDriver v2.31 (2017-07-21)----------Supports Chrome v58-60----------ChromeDriver v2.30 (2017-06-07)----------Supports Chrome v58-60----------ChromeDriver v2.29 (2017-04-04)----------Supports Chrome v56-58----------ChromeDriver v2.28 (2017-03-09)----------Supports Chrome v55-57----------ChromeDriver v2.27 (2016-12-23)----------Supports Chrome v54-56

安装方法 :
下载好后,在终端切换到文件所在路径,输入以下几个命令:

tar -xvzf chromedriver_linux64.zipchmod +x chromedriversudo mv chromedriver /usr/bin/#解压,加上执行权限,移动到/usr/bin/文件夹下。(复制则将mv改为cp)

网上也有另一种,不过意思差不多:

sudo mv -f chromedriver /usr/local/share/chromedriversudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriversudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver#ln -s 为创建链接

至此,chromedriver安装配置成功。


geckodriver的安装方法
下载地址:链接
我下载的是geckodriver-v0.18.0-linux64.tar.gz .
安装方法与chromedriver类似:
在终端下切换到下载路径下,输入以下命令

tar -xvzf geckodriver*chmod +x geckodriversudo mv geckodriver /usr/local/bin/

至此,geckodriver安装配置成功。


最后,介绍phantomjs的下载以及安装方法:
下载地址:链接
我下载的版本为:phantomjs-2.1.1-linux-x86_64.tar.bz2
安装方法与上面类似。

#切换到下载目录tar -xvzf phantomjs-2.1.1-linux-x86_64.tar.bz2#解压后可以看到phantomjs在bin目录下sudo cp /home/usrname/Downloads/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/cd /usr/local/bin/chmod +x phantomjs

至此,phantomjs配置完毕,可以在python下直接使用了。


接下来可以用一小段代码测试一下:

#-*- coding:utf-8 -*-from selenium import webdriverdriver = webdriver.Chrome()#driver = webdriver.Firefox()#driver = webdriver.PhantomJS()driver.get('http://www.baidu.com')driver.find_element_by_id('kw').send_keys(u'MoonBreeze的博客')driver.find_element_by_id('su').click()

如果以上步骤没有错误的话,那么在这一步将可以在浏览器界面看到百度的搜索结果。
如果firefox报如下错误KeyError: 'sessionId',那么升级selenium版本即可。

pip install -U selenium

以上。欢迎交流。