[基础]-selenium + phantomjs/chrome/Firefox 的安装与使用[2018]

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lu8000/article/details/82221535

不用即忘,做为一名码奴,相信这话得到大多数人的认可。做为一名有多年经验的爬手,有时也要经常查找曾经用到的知识。这不,近期有一段时间没有接触模拟爬取的,电脑系统也因某些原因重新了,所有环境都得从0开始。于是,发现想用selenium时瞬间忘记当时是怎么安装的了,有时也会碰到一些莫名其妙的问题上网查了半天也不得其果,今天正好有时间,打算好好温习一下这块基础知识,顺便记录下来,方便以后查阅。

这里大概说一下selenium,算是给一些刚入门的伙伴预热一下。首先,selenium本身是一个自动化测试工具,利用它我们可以驱动浏览器来执行特定的动作,比如点击、下拉、双击等操作。它本来只流行于测试或运维这一小圈子,后来,正是各路“爬手”的使用,把它慢慢的推广起来,直到今天,它依然是爬虫某些领域很重要的,不可替代的技术方案之一。特别是对JS渲染的页面,或动态页面,或实现模拟登录,非常方便。

使用selenium来抓取网页,需要配合phantomjs/chrome/Firefox。下面详细介绍这几个工具的安装。

目录

一、selenium安装

1.1 windows下安装

(1)pip安装

(2)wheel安装

1.2 linux下安装

1.3 验证安装

二、ChromeDriver安装

2.1 下载ChromeDriver

2.2 环境变量配置

(1) windows下配置

(2)linux or mac下配置

2.3 验证安装

三、GeckoDriver安装

四、PhantomJS安装

4.1 phantomjs下载

4.2 验证安装


一、selenium安装

截止2018.8.30 我下载的最新版本是3.14

相关链接:

官方网站:https://www.seleniumhq.org/

中文文档:https://selenium-python-zh.readthedocs.io/en/latest/

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 木风卜雨========================================

猜你喜欢

转载自blog.csdn.net/lu8000/article/details/82221535
今日推荐