Selenium 是一个用于 Web 自动化测试 的开源工具套件,支持多种浏览器和编程语言。它最初是为测试 Web 应用而设计,但也被广泛用于 网页数据抓取 和 自动化操作。
Selenium 的核心组件
- Selenium WebDriver
直接控制浏览器,模拟用户操作(如点击、输入、滚动等),支持多种编程语言(Python、Java、C#、JavaScript 等)。
2.Selenium IDE
浏览器插件(如 Chrome/Firefox 扩展),用于录制和回放简单的自动化脚本。
3.Selenium Grid
分布式测试工具,可在多台机器上并行运行测试。
使用 Selenium 的基本步骤(以 Python 为例)
1. 安装 Selenium
2. 下载浏览器驱动
- Chrome: 下载 ChromeDriver
- Firefox: 下载 geckodriver
- Edge: 下载 EdgeDriver
将驱动文件放在系统路径(如 /usr/local/bin)或项目目录中。
3. 编写代码示例
常用操作
- 元素定位
使用 find_element(By.XXX, "value"),支持多种方式:
-
- By.ID、By.CLASS_NAME、By.NAME
- By.XPATH、By.CSS_SELECTOR
- By.LINK_TEXT、By.PARTIAL_LINK_TEXT
2.输入与点击
3.等待机制
- 隐式等待:全局等待时间
显式等待:针对特定条件
4.执行 JavaScript
高级用法
- 无头模式(Headless)不显示浏览器界面,提升运行速度。
截图与日志
处理弹窗和 Cookie
应用场景
- 自动化测试:验证网页功能是否正常。
- 数据抓取:爬取动态加载的网页(如 JavaScript 渲染的内容)。
- 批量操作:自动填写表单、重复性任务自动化。
注意事项
- 反爬虫机制:频繁使用可能触发网站的验证码或 IP 封禁。
- 性能:Selenium 启动浏览器较慢,适合需要渲染 JavaScript 的场景。若仅需获取静态内容,可优先使用 requests + BeautifulSoup。
- 法律与道德:遵守网站的 robots.txt 和服务条款。
如果需要进一步优化性能或绕过检测,可结合 Selenium Stealth 等工具隐藏自动化特征。