上一节中,我们了解了 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 |
from selenium webdriver |
运行之后,若弹出一个空白的 Firefox 浏览器,则证明所有的配置都没有问题;如果没有弹出,请检查之前的每一步配置。
如果没有问题,接下来就可以利用 Firefox 配合 Selenium 来做网页抓取了。
6. 结语
现在我们就可以使用 Chrome 或 Firefox 进行网页抓取了,但是这样可能有个不方便之处:因为程序运行过程中需要一直开着浏览器,在爬取网页的过程中浏览器可能一直动来动去。目前最新的 Chrome 浏览器版本已经支持无界面模式了,但如果版本较旧的话,就不支持。所以这里还有另一种选择,那就是安装一个无界面浏览器 PhantomJS,此时抓取过程会在后台运行,不会再有窗口出现。在下一节中,我们就来了解一下 PhantomJS 的相关安装方法。