上一节中,我们了解了ChromeDriver的配置方法,配置完成之后便可以用Selenium驱动Chrome浏览器来做相应网页的抓取。
那么对于Firefox来说,也可以使用同样的方式完成Selenium的对接,这时需要安装另一个驱动GeckoDriver。
本节中,我们来介绍一下GeckoDriver的安装过程。
1. 相关链接
2. 准备工作
在这之前请确保已经正确安装好了Firefox浏览器并可以正常运行,安装过程不再赘述。
3. 下载GeckoDriver
我们可以在GitHub上找到GeckoDriver的发行版本,当前最新版本为0.18,下载页面如图1-18所示。图1-18 GeckoDriver下载页面
这里可以在不同的平台上下载,如Windows、Mac、Linux、ARM等平台,我们可以根据自己的系统和位数选择对应的驱动下载,若是Windows 64位,就下载geckodriver-v0.18.0-win64.zip。
4. 环境变量配置
在Windows下,可以直接将geckodriver.exe文件拖到Python的Scripts目录下,如图1-19所示。
图1-19 将geckodriver.exe文件拖到Python Scripts目录
此外,也可以单独将其所在路径配置到环境变量,具体的配置方法请参1.1节。
在Linux和Mac下,需要将可执行文件配置到环境变量或将文件移动到属于环境变量的目录里。
例如,要移动文件到/usr/bin目录。首先在命令行模式下进入其所在路径,然后将其移动到/usr/bin:
1
|
sudo mv geckodriver /usr/bin
|
当然,也可以将GeckoDriver配置到$PATH。首先,可以将可执行文件放到某一目录,目录可以任意选择,例如将当前可执行文件放在/usr/local/geckodriver目录下。接下来可以修改~/.profile文件,命令如下:
1
|
vi ~/.profile
|
然后添加如下一句配置:
1
|
export PATH="$PATH:/usr/local/geckodriver"
|
保存后执行如下命令即可完成配置:
1
|
source ~/.profile
|
5. 验证安装
配置完成后,就可以在命令行下直接执行geckodriver
命令测试:
1
|
geckodriver
|
这时如果控制台有类似图1-20所示的输出,则证明GeckoDriver的环境变量配置好了。
图1-20 控制台输出
随后执行如下Python代码,在程序中测试一下:
1
2
|
from selenium import webdriver
browser = webdriver.Firefox()
|
运行之后,若弹出一个空白的Firefox浏览器,则证明所有的配置都没有问题;如果没有弹出,请检查之前的每一步配置。
如果没有问题,接下来就可以利用Firefox配合Selenium来做网页抓取了。
6. 结语
现在我们就可以使用Chrome或Firefox进行网页抓取了,但是这样可能有个不方便之处:因为程序运行过程中需要一直开着浏览器,在爬取网页的过程中浏览器可能一直动来动去。目前最新的Chrome浏览器版本已经支持无界面模式了,但如果版本较旧的话,就不支持。所以这里还有另一种选择,那就是安装一个无界面浏览器PhantomJS,此时抓取过程会在后台运行,不会再有窗口出现。在下一节中,我们就来了解一下PhantomJS的相关安装方法。