news 2026/8/27 0:05:23

Selenium实战指南:用浏览器驱动轻松实现网络爬虫

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Selenium实战指南:用浏览器驱动轻松实现网络爬虫

Selenium 介绍

1、Selenium 是什么?

Selenium 最初是一款用于 Web 应用程序测试的工具,它可以驱动浏览器执行特定操作,自动按照脚本代码完成点击、输入、打开页面、验证结果等一系列行为,就像真实用户在操作一样。

目前 Selenium 已不仅限于测试领域,还广泛用于网络爬虫、网页自动化、批量操作等场景。

它支持多种主流浏览器,包括:

Internet Explorer(IE)

Firefox

Safari

Microsoft Edge

Google Chrome

等,几乎覆盖了日常开发与爬虫工作中会遇到的所有浏览器类型。

2、Selenium 与 requests 库的区别

很多人在做爬虫时会用到 Python 的 requests库,它通过直接发送 HTTP 请求来获取网页内容,速度快、资源占用少,但只能拿到服务器返回的原始 HTML,对于由 JavaScript 动态渲染生成的数据无能为力。

而 Selenium​ 是基于浏览器驱动程序来控制浏览器执行操作的,浏览器会对网页进行完整的渲染(包括执行 JS、加载 Ajax 数据等),因此 Selenium 可以轻松获取渲染后的页面数据。

简单来说:

requests→ 静态抓取,速度快,适合结构简单、无 JS 渲染的页面。

selenium→ 动态抓取,能获取 JS 渲染后的内容,适合复杂交互或现代前端框架(如 React、Vue)生成的页面,但速度较慢、资源占用高。

3、Selenium 的工作原理

Selenium 的核心是通过 WebDriver​ 与浏览器进行通信。其工作流程如下:

浏览器内核驱动(WebDriver)​

每种浏览器都有自己的 WebDriver,例如 ChromeDriver(Chrome)、GeckoDriver(Firefox)、msedgedriver(Edge)等,并且驱动版本必须与浏览器版本匹配,否则可能无法正常工作。

驱动程序与浏览器内核交互​

WebDriver 会通过浏览器内核提供的接口,将脚本发出的指令(如打开网址、点击按钮、填写表单)转化为浏览器可执行的操作。

浏览器执行并返回结果​

浏览器完成操作后,会将渲染完成的页面信息返回给 WebDriver,再由 WebDriver 将数据传递给我们的脚本进行后续处理。

关键点:不同浏览器使用不同的 WebDriver,且必须对应相应版本的浏览器,否则会出现兼容性问题。

如何使用 Selenium?

(1)使用前准备

要开始使用 Selenium,需要完成以下两个步骤:

a. 安装 Selenium 库​

在命令行中使用 pip 安装(这里以 4.11.0 版本为例):

pipinstallselenium==4.11.0 -i https://pypi.mirrors.ustc.edu.cn/simple/

也可以在 PyCharm 等 IDE 的包管理界面直接搜索安装。
b. 下载并配置浏览器驱动​

不同浏览器需要对应的驱动程序:

Edge 驱动:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

Chrome 驱动:https://chromedriver.storage.googleapis.com/index.html

Firefox 驱动(GeckoDriver):https://github.com/mozilla/geckodriver/releases

注意浏览器内核对应关系:

新版 360 安全浏览器、360 极速浏览器​ 使用的是 Edge 内核​

QQ 浏览器​ 有的版本使用 IE 内核(需注意具体版本)

如果目标网页在 IE 中才能正常显示,则需要用 IE 驱动

(2)驱动程序的放置

Windows 系统:将下载并解压后的驱动文件放到 Python 安装目录下的 Scripts 文件夹​ 中(确保该路径已加入系统环境变量)。

Linux / macOS 系统:同样放在 Python 的 Scripts(或对应可执行路径)目录下;如果系统中有多个 Python 版本,要确定当前运行脚本的 Python 环境,并将其路径配置到环境变量中,避免版本冲突。

实例1:打开网页

fromseleniumimportwebdriverfromselenium.webdriver.edge.optionsimportOptions edge_options=Options()edge_options.binary_location=r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"driver=webdriver.Edge(options=edge_options)driver.get('https://www.ptpress.com.cn/')input('dengdai')

实例2:打开多个网页

fromseleniumimportwebdriverfromselenium.webdriver.edge.optionsimportOptions edge_options=Options()edge_options.binary_location=r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"driver=webdriver.Edge(options=edge_options)driver.get('https://www.baidu.com')driver.execute_script("window.open('https://www.bilibili.com/','_blank');")driver.execute_script("window.open('https://www.shuyishe.com/','_blank');")driver.execute_script("window.open('https://www.shuyishe.com/course','_blank');")input('dengdai')
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/26 18:55:10

探索近乎完全消光的圆二色超反射镜与圆偏振光设置

近乎完全消光的圆二色超反射镜 圆偏振光的设置在光学领域,圆二色超反射镜以及圆偏振光的相关研究一直是极具吸引力的方向。今天咱们就来聊聊近乎完全消光的圆二色超反射镜以及圆偏振光的设置那些事儿。 近乎完全消光的圆二色超反射镜 圆二色性(CD&#…

作者头像 李华
网站建设 2026/8/26 17:19:46

Wan2.2-T2V-A14B用于城市交通流量模拟可视化展示

Wan2.2-T2V-A14B:让城市交通“动”起来的AI视觉引擎 你有没有想过,未来的交通指挥中心不再是一堆密密麻麻的折线图和数字报表,而是一块块高清大屏上实时“播放”的动态街景?车流如织、红绿灯切换、公交专用道畅通无阻——这一切不…

作者头像 李华
网站建设 2026/8/22 11:02:24

Docker + 多模态Agent = 王炸组合?5个真实生产环境编排案例深度剖析

第一章:Docker与多模态Agent融合的架构演进随着人工智能系统向复杂化、分布式方向发展,Docker容器技术与多模态Agent系统的融合成为现代智能架构的重要演进路径。该融合模式通过容器化封装实现多模态感知、决策与执行模块的解耦,提升系统可扩…

作者头像 李华
网站建设 2026/8/26 11:55:14

你用过哪些国产实时数据库?

随着中国数字经济加速发展,国产数据库正从政策驱动的“替代”走向技术创新驱动的“超越”。在这样一个快速增长的市场中,实时数据库作为连接工业现场与信息系统的关键桥梁,其重要性日益凸显。而在这个细分赛道中,大庆紫金桥软件技…

作者头像 李华
网站建设 2026/8/26 6:42:05

Android v4l2 camera apk:快速实现摄像头调试的终极工具

Android v4l2 camera apk:快速实现摄像头调试的终极工具 【免费下载链接】Androidv4l2cameraapk资源介绍 Android v4l2 camera apk是一款专为开发者设计的摄像头功能实现工具,支持在Android设备上进行摄像头预览和调试。它兼容多种Android版本&#xff0…

作者头像 李华
网站建设 2026/8/26 4:48:09

【STM32】低功耗

目录1 什么是低功耗?2 STM32电源系统结构3 低功耗模式介绍3.1 睡眠模式(sleep mode)3.2 停机模式(stop mode)3.3 待机模式(standby mode)4 寄存器及库函数介绍小实验:低功耗实验1 什…

作者头像 李华