Selenium 库
这是使用 Selenium 自动化浏览器所必需的 Python 包,它提供了与浏览器交互的 API。
安装命令
打开您的终端或命令提示符,运行以下命令:
# 使用 pip (Python 包管理器) 进行安装 pip install selenium
推荐做法: 为了确保安装的版本与您的 Python 版本兼容,并且避免未来可能的版本冲突,建议您在安装时指定 Python 解释器:
# 如果您有多个 Python 版本,明确指定 Python 3 python3 -m pip install selenium
验证安装
安装完成后,您可以在 Python 交互式环境中或脚本中验证是否安装成功:
# 在 Python 脚本或交互式终端中运行 import selenium # 打印 Selenium 的版本号 print(selenium.__version__)
如果成功打印出版本号(15.2),则表示安装成功。
必需的组件:浏览器驱动
Selenium 本身不控制浏览器,它需要通过一个叫做 WebDriver 的中间件来与浏览器通信,WebDriver 是一个由浏览器厂商(如 Google, Mozilla, Microsoft)提供的独立程序。
您必须为您的浏览器下载对应的驱动程序。
步骤 1:确定您的浏览器版本
确认您电脑上安装的浏览器及其版本,Google Chrome 版本 125.0.6422.112。
步骤 2:下载对应版本的 WebDriver
根据您的浏览器类型和版本,下载对应的驱动。
Google Chrome / Microsoft Edge (基于 Chromium)
- 驱动名称:
chromedriver - 下载地址:https://googlechromelabs.github.io/chrome-for-testing/
- 这是一个官方推荐的、易于使用的下载页面。
- 选择与您的 Chrome 版本最接近的
chromedriver。 - 下载适合您操作系统的
zip压缩包(win64,mac-x64,mac-arm64,linux64)。 - 解压后,您会得到一个名为
chromedriver.exe(Windows) 或chromedriver(Mac/Linux) 的可执行文件。
Mozilla Firefox
- 驱动名称:
geckodriver - 下载地址:https://github.com/mozilla/geckodriver/releases
- 下载最新稳定版即可。
- 选择适合您操作系统的版本。
- 解压后,您会得到一个名为
geckodriver.exe(Windows) 或geckodriver(Mac/Linux) 的可执行文件。
步骤 3:配置 WebDriver 的路径
下载好驱动后,Selenium 需要知道它的位置,主要有两种方法:
将驱动放在系统 PATH 路径下(推荐)
-
将解压出来的
chromedriver或geckodriver文件复制到您的 Python 解释器所在的目录,或者任何一个在系统环境变量PATH中的目录。 -
优点:代码最简洁,无需在代码中写死路径。
-
示例代码:
from selenium import webdriver # Selenium 会自动在系统 PATH 中查找 chromedriver driver = webdriver.Chrome() driver.get("https://www.google.com") print(driver.title) driver.quit()
在代码中指定驱动路径
-
如果不想修改系统 PATH,可以直接在代码中指定驱动文件的完整或相对路径。
-
优点:项目可移植性好,每个项目可以有自己的驱动版本。
-
示例代码:
from selenium import webdriver import os # 假设驱动文件和您的 Python 脚本在同一个文件夹下 driver_path = os.path.join(os.path.dirname(__file__), 'chromedriver') driver = webdriver.Chrome(executable_path=driver_path) driver.get("https://www.baidu.com") print(driver.title) driver.quit()注意:从 Selenium 4.6.0 版本开始,
executable_path参数已被弃用,推荐使用Service对象,这是更现代的方式:from selenium import webdriver from selenium.webdriver.chrome.service import Service import os driver_path = os.path.join(os.path.dirname(__file__), 'chromedriver') service = Service(executable_path=driver_path) driver = webdriver.Chrome(service=service) # ... 后续代码
可选但推荐的包:webdriver-manager
手动下载和管理 WebDriver 版本非常繁琐,特别是当浏览器自动更新后,驱动可能会不兼容。webdriver-manager 库可以自动为您下载和管理正确的驱动版本,极大地简化了工作流程。
安装 webdriver-manager
pip install webdriver-manager
使用 webdriver-manager
使用它后,您不再需要手动下载或放置任何驱动文件。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# webdriver-manager 会自动下载并管理驱动
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
driver.get("https://www.python.org")
print(driver.title)
driver.quit()
这段代码会自动检测您的 Chrome 浏览器版本,下载匹配的 chromedriver,并在脚本执行后自动管理它,非常方便。
用于网页解析的包:Beautiful Soup
虽然 Selenium 可以模拟浏览器点击、输入等操作,但它解析 HTML 的能力较弱,我们会结合 Beautiful Soup 或 lxml 来解析网页源代码,并提取所需的数据。
安装 Beautiful Soup
您通常需要同时安装 beautifulsoup4 和一个解析器(如 lxml)。
pip install beautifulsoup4 pip install lxml
结合 Selenium 和 Beautiful Soup 示例
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup
# 1. 使用 Selenium 获取网页源代码
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
driver.get("https://quotes.toscrape.com/")
# 2. 将源代码传递给 Beautiful Soup 进行解析
soup = BeautifulSoup(driver.page_source, 'lxml')
# 3. 使用 Beautiful Soup 的便捷方法提取数据
quotes = soup.find_all('div', class_='quote')
for quote in quotes:
text = quote.find('span', class_='text').text
author = quote.find('small', class_='author').text
print(f'"{text}" - {author}')
driver.quit()
| 组件 | 名称 | 用途 | 安装/获取方式 |
|---|---|---|---|
| 核心库 | selenium |
提供 WebDriver API,控制浏览器。 | pip install selenium |
| 浏览器驱动 | chromedriver / geckodriver |
连接 Selenium 和浏览器的桥梁。 | 从浏览器官方或 GitHub 下载。 |
| 驱动管理器 | webdriver-manager |
(推荐) 自动下载和管理驱动。 | pip install webdriver-manager |
| HTML解析器 | beautifulsoup4 |
解析 HTML/XML,方便提取数据。 | pip install beautifulsoup4 lxml |
对于新手,最推荐的组合是:
pip install seleniumpip install webdriver-managerpip install beautifulsoup4 lxml
这样您就可以专注于编写自动化脚本,而无需为驱动的安装和更新而烦恼。
