不用即忘,做为一名码奴,相信这话得到大多数人的认可。做为一名有多年经验的爬手,有时也要经常查找曾经用到的知识。这不,近期有一段时间没有接触模拟爬取的,电脑系统也因某些原因重新了,所有环境都得从0开始。于是,发现想用selenium时瞬间忘记当时是怎么安装的了,有时也会碰到一些莫名其妙的问题上网查了半天也不得其果,今天正好有时间,打算好好温习一下这块基础知识,顺便记录下来,方便以后查阅。
这里大概说一下selenium,算是给一些刚入门的伙伴预热一下。首先,selenium本身是一个自动化测试工具,利用它我们可以驱动浏览器来执行特定的动作,比如点击、下拉、双击等操作。它本来只流行于测试或运维这一小圈子,后来,正是各路“爬手”的使用,把它慢慢的推广起来,直到今天,它依然是爬虫某些领域很重要的,不可替代的技术方案之一。特别是对JS渲染的页面,或动态页面,或实现模拟登录,非常方便。
使用selenium来抓取网页,需要配合phantomjs/chrome/Firefox。下面详细介绍这几个工具的安装。
目录
一、selenium安装
截止2018.8.30 我下载的最新版本是3.14
相关链接:
1.1 windows下安装
(1)pip安装
执行如下命令即可:
pip3 install selenium
这是最优先推荐的安装方式。
(2)wheel安装
到PyPI下载wheel文件进行安装 。
下载地址:https://pypi.org/project/selenium/#files,把文件selenium-3.14.0-py2.py3-none-any.whl下载即可。
然后进入wheel文件所在目录,使用pip安装:
pip3 install selenium-3.14.0-py2.py3-none-any.whl
1.2 linux下安装
基本同windows。
到此,我们已经成功安装了selenium,但还不能用它来配合Chrome,Firfox,Phantomjs浏览器来抓取内容,还需要安装对应的浏览器驱动模块。
1.3 验证安装
安装结束,需要验证上述安装是否成功,可进入python命令行交互模式,导入import selenium,如没报异常则表示成功:
D:\>python3
Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
>>>
二、ChromeDriver安装
ChromeDriver是用来驱动谷歌浏览器。
首先下载谷歌浏览器,这里不多说,并记下所下版本,这里我的版本是68.0.3440.106。
2.1 下载ChromeDriver
相关链接:
官方文档:https://sites.google.com/a/chromium.org/chromedriver/downloads
官方下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads
淘宝镜像下载:http://npm.taobao.org/mirrors/chromedriver/
如下图所示,每个版本的ChromeDriver仅支持某范围内的chrome浏览器版本,如果不一致,后面调用时会出错。
这里我下载的版本是2.41:https://chromedriver.storage.googleapis.com/index.html?path=2.41/
2.2 环境变量配置
下载后,将所下载zip包解压后将chromedriver.exe放到环境变量下即可。
(1) windows下配置
建议将文件chromedriver.exe放到python的Scripts目录,如我的:C:\Program Files\python3\Scripts。也可以将其放在其它目录下,但是需要将此目录添加到系统环境变量path下。
(2)linux or mac下配置
在linux or mac下,可以将文件chromedriver.exe放到环境变量或移到环境变量所在目录里,如:/usr/bin目录。
此外,也可以不移动,只需要将文件chromedriver.exe所在目录添加到$PATH环境变量中,这样可以通过修改文件~/.profile,添加如下命令:
export PATH="$PATH:/usr/local/chromedriver"
保存退出后,执行如下命令使之马上生效
source ~/.profile
2.3 验证安装
直接在命令行下执行命令:chromedriver,如有如下输出则说明安装成功。
python代码测试调用:
from selenium import webdriver
# b = webdriver.Chrome('C:\Program Files\chromedriver_win32\chromedriver.exe')
b = webdriver.Chrome()
运行后如能弹出浏览器则说明OK。
这里需要注意的是,有时配置chromedriver添加到环境后,若在pycharm开发平台上运行报异常"找不到指定文件啥的",则需要重启下pycharm。
三、GeckoDriver安装
GeckoDriver主要是用来驱动火狐浏览器。
相关链接:
github:https://github.com/mozilla/geckodriver
下载地址:https://github.com/mozilla/geckodriver/releases
下面具体的安装方式这里不多说,基本和上述chromedriver,也是需要下载和火狐版本号匹配的GeckoDriver,以及配置环境变量。下面主要说下验证安装.
命令行验证安装
输入:geckodriver
如果控制台有如下输出则是正常了。
python代码验证
from selenium import webdriver
b = webdriver.Firefox()
如弹出空白火狐浏览器,则OK。
四、PhantomJS安装
上面所述的谷歌或火狐均为有界面的浏览器模式,如果抓取量大或长期的,那就不怎么方便了,当然,目前最新版本的谷歌浏览器也有无界面的版本了。而phantomjs是无界面的浏览器,更快更节省内存。phantomjs是一个无界面的,可脚本编程的webkit浏览器引擎,支持多种WEB标准,selenium高度支持phantomjs。
相关链接
官方下载:http://phantomjs.org/download.html
官方文档:http://phantomjs.org/quick-start.html
API接口文档:http://phantomjs.org/api/command-line.html
4.1 phantomjs下载
phantomjs支持多种操作系统,下载时只需要下载对应操作系统平台即可。这里我下载的是phantomjs-2.1.1-windows.zip
下载后解压,将目录phantomjs-2.1.1-windows\bin添加到系统环境变量中即可。具体操作同章节二。
4.2 验证安装
命令行验证:
phantomjs
执行后如果进入phantomjs的命令行模式,则表示成功,如:
python代码验证:
from selenium import webdriver
b = webdriver.PhantomJS()
b.get('https://baidu.com')
print(b.current_url)
运行之后不会有浏览器界面弹出,但实际上phantomjs已经运行起来了。
到此,selenium 的安装过程已写完。更多详情使用请关注博客。
========================================end 木风卜雨========================================
========================================end 木风卜雨========================================