环境:
系统 : 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.zip
chmod +x chromedriver
sudo mv chromedriver /usr/bin/
#解压,加上执行权限,移动到/usr/bin/文件夹下。(复制则将mv改为cp)
网上也有另一种,不过意思差不多:
sudo mv -f chromedriver /usr/local/share/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
sudo 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 geckodriver
sudo 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 webdriver
driver = 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
以上。欢迎交流。