目录
-
- [从零开始的 Web 自动化指南:如何用 Python 和 Selenium 解放双手](#从零开始的 Web 自动化指南:如何用 Python 和 Selenium 解放双手)
- [1. 什么是 Selenium?](#1. 什么是 Selenium?)
- [2. 准备工作 (Prerequisites)](#2. 准备工作 (Prerequisites))
-
- [安装必备的 Python 库](#安装必备的 Python 库)
- [3. 分步指南:编写你的第一个自动化脚本](#3. 分步指南:编写你的第一个自动化脚本)
- [4. 常见陷阱与注意事项 (Common Pitfalls)](#4. 常见陷阱与注意事项 (Common Pitfalls))
- [5. 总结与学习资源](#5. 总结与学习资源)
专栏导读
🌸 欢迎来到Python办公自动化专栏---Python处理办公问题,解放您的双手
🏳️🌈 个人博客主页:请点击------> 个人的博客主页 求收藏
🏳️🌈 Github主页:请点击------> Github主页 求Star⭐
🏳️🌈 知乎主页:请点击------> 知乎主页 求关注
🏳️🌈 CSDN博客主页:请点击------> CSDN的博客主页 求关注
👍 该系列文章专栏:请点击------>Python办公自动化专栏 求订阅
🕷 此外还有爬虫专栏:请点击------>Python爬虫基础专栏 求订阅
📕 此外还有python基础专栏:请点击------>Python基础学习专栏 求订阅
文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
❤️ 欢迎各位佬关注! ❤️
从零开始的 Web 自动化指南:如何用 Python 和 Selenium 解放双手
在当今数字化的世界中,我们每天都要在浏览器中执行大量重复的任务:填写表单、下载报表、抓取数据或是测试网页功能。如果你曾幻想过能有一个"隐形机器人"替你完成这些繁琐的点击和输入,那么 Selenium 就是你的最佳选择。
本文将作为一份面向完全新手的系统性指南,带你一步步了解什么是 Selenium,以及如何使用 Python 编写你的第一个 Web 自动化脚本。
1. 什么是 Selenium?
Selenium 是一个强大的开源 Web 自动化工具集。简单来说,它可以直接控制你的浏览器,模拟真实用户的操作(如点击、输入文本、滚动页面等)。
它最初是为自动化 Web 应用程序测试而诞生的,但由于其强大的浏览器控制能力,现在也被广泛应用于网页数据抓取(爬虫)和日常任务自动化。
2. 准备工作 (Prerequisites)
在开始编写代码之前,我们需要准备好开发环境。请确保你的电脑上已经安装了以下软件:
- Python: 建议安装 Python 3.7 或更高版本。
- Google Chrome 浏览器: 本文将以 Chrome 为例进行演示。
- 代码编辑器: 如 VS Code、PyCharm 或简单的 IDLE。
安装必备的 Python 库
打开你的终端(Windows 的 CMD/PowerShell,或 Mac/Linux 的 Terminal),运行以下命令来安装 Selenium 和 WebDriver 管理器:
bash
pip install selenium
pip install webdriver-manager
专业提示:
webdriver-manager是一个非常实用的辅助库。它会自动为你下载并配置与你当前 Chrome 浏览器版本匹配的驱动程序(ChromeDriver),让你免去手动下载和配置环境变量的烦恼。
3. 分步指南:编写你的第一个自动化脚本
我们将编写一个简单的脚本:自动打开浏览器,进入百度首页,搜索"Selenium 自动化",并点击搜索按钮。
第一步:导入必要的模块
在你的代码编辑器中创建一个名为 auto_search.py 的文件,并输入以下代码:
python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
import time
第二步:初始化浏览器并打开网页
接下来,我们需要启动 Chrome 浏览器并告诉它去哪个网址。
python
# 使用 webdriver_manager 自动配置驱动
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
# 让浏览器全屏运行(可选)
driver.maximize_window()
# 打开百度首页
driver.get("https://www.baidu.com")
第三步:定位网页元素
为了让 Selenium 知道在哪里输入文字,我们需要"定位"那个输入框。在 Web 开发中,每个元素都有自己的 HTML 标签和属性。
百度的搜索输入框的 HTML id 属性是 kw,搜索按钮的 id 是 su。
python
# 找到搜索输入框
search_box = driver.find_element(By.ID, "kw")
# 找到"百度一下"按钮
search_button = driver.find_element(By.ID, "su")
第四步:与元素进行交互
找到元素后,我们就可以模拟人类的行为了。
python
# 在输入框中输入文字
search_box.send_keys("Selenium 自动化")
# 等待1秒钟,以便我们能看清操作(实际开发中建议使用显式等待)
time.sleep(1)
# 点击搜索按钮
search_button.click()
# 保持结果页面打开 5 秒钟,然后关闭
time.sleep(5)
第五步:关闭浏览器
任务完成后,务必养成关闭浏览器并释放系统资源的好习惯。
python
# 退出浏览器并结束 WebDriver 进程
driver.quit()
完整代码示例
将上面的步骤组合起来,你的完整代码如下:
python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
import time
def main():
print("正在启动浏览器...")
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
driver.maximize_window()
try:
print("正在打开百度...")
driver.get("https://www.baidu.com")
print("正在定位元素并搜索...")
search_box = driver.find_element(By.ID, "kw")
search_button = driver.find_element(By.ID, "su")
search_box.send_keys("Selenium 自动化")
time.sleep(1)
search_button.click()
print("搜索成功!等待 5 秒后关闭浏览器...")
time.sleep(5)
finally:
driver.quit()
print("浏览器已关闭。")
if __name__ == "__main__":
main()
运行这个脚本,你就可以把双手离开键盘,看着电脑自动完成搜索了!
4. 常见陷阱与注意事项 (Common Pitfalls)
对于初学者来说,使用 Selenium 时最容易遇到以下几个坑:
-
1. 页面还没加载完就去寻找元素 (ElementNotVisibleException)
- 问题: 代码运行速度远快于网页加载速度。如果网页还没渲染出按钮,代码就去点击,就会报错。
- 解决方案: 避免使用死板的
time.sleep()。学习使用 显式等待 (Explicit Waits)。例如:
pythonfrom selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 最多等待 10 秒,直到 ID 为 'su' 的元素可被点击 button = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.ID, "su")) ) -
2. 浏览器版本与驱动不匹配
- 问题: Chrome 浏览器经常自动更新,导致旧版的 ChromeDriver 失效。
- 解决方案: 就像我们在教程中做的那样,始终使用
webdriver-manager库,它会在每次运行时自动检查并匹配版本。
-
3. 元素嵌套在 iframe 中
- 问题: 有时候你明明看到了元素,代码却找不到它。这可能是因为该元素在一个嵌入的子网页(iframe)里。
- 解决方案: 需要先让 WebDriver 切换到该 iframe,例如:
driver.switch_to.frame("iframe_name")。
5. 总结与学习资源
恭喜你!你已经成功编写并运行了你的第一个 Selenium Web 自动化脚本。我们学习了如何配置环境、打开网页、定位元素(通过 ID)以及模拟键盘输入和鼠标点击。
自动化是一个深不见底但也充满乐趣的领域。为了进一步提升你的技能,建议你探索以下主题:
- 学习更多定位元素的方法(如 XPath 和 CSS Selectors)。
- 学习如何处理弹窗(Alerts)和下拉菜单(Select)。
- 学习如何实现无头模式(Headless Mode),让浏览器在后台静默运行以提高速度。
推荐学习资源:
- Selenium 官方文档 (中文/英文) - 最权威的参考手册。
- Python 官方文档 - 巩固 Python 基础。
- XPath 语法教程 - 帮助你精准定位网页上的任何复杂元素。
现在,去寻找你日常工作中的重复性任务,用 Selenium 把它自动化吧!
结尾
希望对初学者有帮助;致力于办公自动化的小小程序员一枚
希望能得到大家的【❤️一个免费关注❤️】感谢!
求个 🤞 关注 🤞 +❤️ 喜欢 ❤️ +👍 收藏 👍
此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏
此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏
此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏