[网络爬虫] 动态网页抓取 — Selenium 介绍 & 环境配置

🌟想系统化学习爬虫技术? 看看这个:[数据抓取] Python 网络爬虫 - 学习手册-CSDN博客

0x01:Selenium 工具介绍

Selenium 是一个开源的便携式自动化测试工具。它最初是为网站自动化测试而开发的,类似于我们玩游戏用的按键精灵,可按照预先设定的指令进行自动化操作。但不同的是,Selenium 支持与所有主流的浏览器(如 Chrome、Firefox、Edge、IE 等)配合使用,当然,也包括如 PhantomJS、Headless Chrome 等一些无界面的浏览器。

Selenium 可以直接运行在浏览器中,模拟用户使用浏览器完成一些动作,包括自动加载页面、输入文本、选择下拉列表框中的选项、单机按钮、单机超链接等。

0x02:Selenium & WebDriver 环境配置

在使用 Selenium 抓取动态网页之前,我们需要在计算机上安装 Selenium 和配合它使用的浏览器驱动 WebDriver。为了避免在后续的网络爬虫程序中重复指定 WebDriver 的执行路径,我们还需要为 WebDriver 配置环境变量。

0x0201:环境配置 --- Selenium

Selenium 的安装十分简单,直接使用 pip 命令即可,具体的安装命令如下:

bash 复制代码
pip install selenium==3.141.0

因为笔者的机器中是安装过了的,所以会出现 "Requirement already satisfied" 的字段,读者运行上述命令后应该会出现 "Successfully Installed Selenium" 字段。如果读者安装过慢,可能是 Python 镜像仓库的源没有换导致的,建议手动搜索 "Python 换源",将仓库源换为国内的。

另外,目前最新的 Selenum 应该已经到 4 版本了,但是 4 版本的 Selenium 语法相较于 3 有很大的改变,笔者后续的笔记是基于 3 版本的(够用了)。所以,如果后续你运行笔者的程序出错了,建议先排查一下自己安装的 Selenium 的版本信息。

0x0202:环境配置 --- WebDriver

WebDriver 即浏览器驱动程序,用于实现 Selenium 与浏览器之间的交互。不同的浏览器使用的驱动程序不同,常见的浏览器机器对应的驱动程序如下表所示:

浏览器 驱动程序 下载路径
Chromium/Chrome ChromeDriver GoogelChromeDriver 下载(需要魔法)
FireFox GeckoDriver GeckoDriver 下载
Edge MicrosoftWebDriver Microsoft Edge 下载
IE IEDriverServer IEDriverServer 下载
Opera OperaChromiumDriver
Safari SafariDriver
复制代码
Selenium+WebDriver 各浏览器驱动下载与使用 - 苏念雨 - 博客园Selenium + Python 之 WebDriver 驱动下载与使用 一、Firefox(火狐)浏览器驱动 下载地址:https://github.com/mozilla/geckodriver/releases/ 下载对应驱动:根据自己的操作系统下载相对应的驱动。 使用方法:把文件存放在 p![](https://csdnimg.cn/release/blog_editor_html/release2.3.8/ckeditor/plugins/CsdnLink/icons/icon-default.png)https://www.cnblogs.com/sunisnyu/p/18442541

需要注意的是,不同版本的浏览器驱动程序支持的浏览器版本也不同。我们在下载浏览器驱动程序之前,需要先查看当前浏览器的版本号(这也是为啥,明明程序没问题,但是死活无法打开浏览器的情况)。

接下来,笔者以 Chrome 浏览器为例,为大家演示如何安装 Chrome 浏览器的驱动程序。

1. 查看 Chrome 浏览器版本

打开 Chrome 浏览器,然后访问下面的页面,即可看到当前 Chrome 浏览器的内核版本:

bash 复制代码
chrome://settings/help

2. 选择对应版本的 WebDriver

看到我们当前的浏览器版本 134.0 后,我们来到 Google Chrome 官方页面,查找对应的 Chrome:

bash 复制代码
https://developer.chrome.google.cn/docs/chromedriver/downloads?hl=zh-cn

点击页面上的 "Chrome 115 及更高版本" 后它会跳转到如下界面,我们选择对应的版本 "134":

bash 复制代码
https://googlechromelabs.github.io/chrome-for-testing/

如下,我们选择适合自己平台的对应版本的 Chrome Driver 即可,将链接复制下来直接访问,就可以下载了:

将下载下来的 ChromDriver 解压,可以看到里面包含一个 chromedriver.exe 程序,这个程序就是我们需要的 WebDriver 了,该 WebDriver 专门用于驱动 Chrome 浏览器:

3. 将 WebDriver 添加到环境变量中(可选)

在程序中使用 WebDriver 时,既可以显式地指定 WebDriver 所在的执行目录,也可以将 WebDriver 配置到系统环境变量中。将 WebDriver 配置到系统环境变量中以后,在程序中再次使用 WebDriver 时,就不需要重复指定 WebDriver 的执行路径了。下面笔者以 ChromeDriver 为例,为大家演示如何将 ChromeDriver 配置到环境变量中。

在系统中直接搜索 "环境变量",点击下面框出来的内容:

然后单机 "环境变量",在 "系统变量" 中找到 "Path" 变量,将我们解压的 ChromeDriver 的路径黏贴进去:

然后一路点击 "确定" 退出。最后,按下 Win + R 输入 CMD,打开命令行窗口,输入下面的内容,若命令后出现 ChromeDriver 当前的版本,则说明环境配置成功:

bash 复制代码
chromedriver -version

0x03:Selenium & WebDriver 环境检测

当你按照上述流程配置完 Selenium & WebDriver 环境后,可以新建一个 .py 文件,并输入下面的代码尝试运行一下,如果能运行成功,那么恭喜你,可以开启 Selenium 自动化之旅了:

python 复制代码
from selenium import webdriver # 导入 selenium 库
​
# 实例化一个浏览器对象
driver = webdriver.Chrome()
​
# 尝试访问 baidu.com
driver.get('https://www.baidu.com/')
# 让浏览器全屏
driver.maximize_window()
​
### 下面两个是用来关闭浏览器的,你可以依次取消注释然后运行看看
# driver.close()  # 关闭当前页面
# driver.quit()   # 退出浏览器
相关推荐
不脱发的猴子2 小时前
Wireshark使用教程
网络·测试工具·wireshark
小羊在奋斗4 小时前
【Linux网络】NAT技术、DNS系统、五种IO模型
linux·网络·智能路由器
暴躁的小胡!!!6 小时前
Linux权限维持之协议后门(七)
linux·运维·服务器·网络·安全
遇见火星7 小时前
2025年Linux 安全与运维指南
网络
waicsdn_haha7 小时前
Postman v11 安装与API测试入门教程(Windows平台)
人工智能·windows·测试工具·mysql·postman·dbeaver·rest
苏格拉真没有底7 小时前
python实现mqtt消息转Tcp消息
网络·python·tcp/ip
ITlinuxP7 小时前
2025最新Postman、Apipost和Apifox API 协议与工具选择方案解析
后端·测试工具·postman·开发工具·apipost·apifox·api协议
dxaiofcu7 小时前
双网卡电脑,IP地址漂移
linux·服务器·网络
天才测试猿7 小时前
功能测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
海姐软件测试8 小时前
面试时,如何回答好“你是怎么测试接口的?”
测试工具·面试·职场和发展·postman