[Python3网络爬虫开发实战] 1.2.4-GeckoDriver的安装
上一节中,我们了解了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的相关安装方法。
[Python3网络爬虫开发实战] 1.2.4-GeckoDriver的安装的更多相关文章
- [Python3网络爬虫开发实战] 1.3.2-Beautiful Soup的安装
Beautiful Soup是Python的一个HTML或XML的解析库,我们可以用它来方便地从网页中提取数据.它拥有强大的API和多样的解析方式,本节就来了解下它的安装方式. 1. 相关链接 官方文 ...
- [Python3网络爬虫开发实战] 1.9.4-Scrapyd API的安装
安装好了Scrapyd之后,我们可以直接请求它提供的API来获取当前主机的Scrapy任务运行状况.比如,某台主机的IP为192.168.1.1,则可以直接运行如下命令获取当前主机的所有Scrapy项 ...
- 崔庆才Python3网络爬虫开发实战电子版书籍分享
资料下载地址: 链接:https://pan.baidu.com/s/1WV-_XHZvYIedsC1GJ1hOtw 提取码:4o94 <崔庆才Python3网络爬虫开发实战>高清中文版P ...
- 《Python3 网络爬虫开发实战》开发环境配置过程中踩过的坑
<Python3 网络爬虫开发实战>学习资料:https://www.cnblogs.com/waiwai14/p/11698175.html 如何从墙内下载Android Studio: ...
- 《Python3 网络爬虫开发实战》学习资料
<Python3 网络爬虫开发实战> 学习资料 百度网盘:https://pan.baidu.com/s/1PisddjC9e60TXlCFMgVjrQ
- Python3网络爬虫开发实战PDF高清完整版免费下载|百度云盘
百度云盘:Python3网络爬虫开发实战高清完整版免费下载 提取码:d03u 内容简介 本书介绍了如何利用Python 3开发网络爬虫,书中首先介绍了环境配置和基础知识,然后讨论了urllib.req ...
- 转:【Python3网络爬虫开发实战】 requests基本用法
1. 准备工作 在开始之前,请确保已经正确安装好了requests库.如果没有安装,可以参考1.2.1节安装. 2. 实例引入 urllib库中的urlopen()方法实际上是以GET方式请求网页,而 ...
- 《Python3网络爬虫开发实战》PDF+源代码+《精通Python爬虫框架Scrapy》中英文PDF源代码
下载:https://pan.baidu.com/s/1oejHek3Vmu0ZYvp4w9ZLsw <Python 3网络爬虫开发实战>中文PDF+源代码 下载:https://pan. ...
- 《Python3网络爬虫开发实战》
推荐:★ ★ ★ ★ ★ 第1章 开发环境配置 第2章 网页基础知识 第3章 网络爬虫基础 第4章 基本库的使用 第5章 解析库的使用 第6章 数据存储 第7章 Ajax数据爬取 第8章 动态渲染页面 ...
- [Python3网络爬虫开发实战] 3.1.4-分析Robots协议
利用urllib的robotparser模块,我们可以实现网站Robots协议的分析.本节中,我们来简单了解一下该模块的用法. 1. Robots协议 Robots协议也称作爬虫协议.机器人协议,它的 ...
随机推荐
- poj 1149 PIGS【最大流】
建图:s向所有猪圈的第一个顾客连流量为这个猪圈里住的数量,然后对于之后每个来这个猪圈的顾客,由他前一个顾客向他连边权为无穷的边,然后每个顾客向t连流量为这个顾客购买上限的边.然后跑最大流 #inclu ...
- [App Store Connect帮助]七、在 App Store 上发行(3.1)提交至“App 审核”:提交 App 以供审核
将您的 App 提交至“App 审核”,从而开始审核流程,以便使您的 App 在 App Store 上可用. 但是,在您能够上传 App 至“App 审核”前,您必须提供所有必填的元数据并为该版本选 ...
- java多线程下模拟抢票
我们设置三个对象分别同时抢20张票,利用多线程实现. public class Web123506 implements Runnable{ private int ticteksNums=20;// ...
- ls -l 详解
ls -l 是文件系统的一个命令,用来查询当前路径的文件的属性.大小等详细信息
- pytest的参数化
参数化有两种方式: 1. @pytest.mark.parametrize 2.利用conftest.py里的 pytest_generate_tests 1中的例子如下: @pytest.mark. ...
- [POI2007]石头花园SKA
Description Blue Mary是一个有名的石头收藏家.迄今为止,他把他的藏品全部放在他的宫殿的地窖中.现在,他想将他的藏品陈列在他的花园中.皇家花园是一个边长为1000000000单位的平 ...
- 题解报告:hdu 1087 Super Jumping! Jumping! Jumping!
Problem Description Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very ...
- dalvik.system.VMRuntime 隐藏api的迷惑
[Android UI界面]关于dalvik.system.VMRuntime 的 使用迷惑 我也遇到了相同问题.不知楼主现在解决了没有? 回答1: [Android UI界面]关于dalvik.sy ...
- JAVA面试题最全集
JAVA面试题最全集 2009-01-19 15:40 3458人阅读 评论(0) 收藏 举报 java面试ejbservletstringhashmap 一.Java基础知识1.Java有那些基 ...
- SpringBoot 2.x (4):配置文件与单元测试
SpringBoot的配置文件有默认的application.properties 还可以使用YAML 区别: application.properties示例: server.port=8090 s ...