上一节中,我们了解了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的相关安装方法。

最新文章

  1. iOS 开发:CoCoapods的使用和安装
  2. 数据解析(XML和JSON数据结构)
  3. JS获取form表单所有属性值
  4. java-测试synchronized使用xxx.class和this使用的区别
  5. Android Studio UML 插件 PlantUML 使用语法
  6. 推荐一篇java抽象类和接口区别的文章
  7. IOS 支付
  8. JavaScript正则验证数字、英文、电话号、身份证号、邮箱地址、链接地址等
  9. POJ 1236.Network of Schools (强连通)
  10. 解决Android单个dex文件不能超过65536个方法问题
  11. Cannot initialise keyboard run ./nano-X
  12. css中display的属性解析
  13. 【MAC】Mac下部分常用的小工具
  14. Java学习笔记之——常用转义符号
  15. C++桥接模式【转】
  16. VMware Workstation Pro14安装
  17. HTML <frame> 标签的 src 属性
  18. 这些你都了解么------程序员"跳槽"法则
  19. 普通程序员,三年成为年薪70w架构师,只因做到了这些
  20. js-ES6学习笔记-Reflect

热门文章

  1. HDU 5912 Fraction (模拟)
  2. hdu4975 A simple Gaussian elimination problem.(最大流+判环)
  3. MySQL(调优慢查询、explain profile) 转
  4. 洛谷P3250 [HNOI2016]网络(整体二分+树状数组+树剖)
  5. phpstorm最新破解办法(2016-10-30)
  6. logstsh | logstash-input-jdbc 启动错误收集
  7. javascript---DOM大编程
  8. BZOJ 3224 SBT 普通平衡树
  9. C# System.IO 文件流输入输出
  10. how-to-fix-fs-re-evaluating-native-module-sources-is-not-supported-graceful