2、Selenium 环境搭建:安装 Selenium、WebDriver 配置、浏览器驱动下载与路径设置、第一个自动化脚本。

好,咱们正式开始动手了。这一章,我带你把 Selenium 的环境彻底搭起来。很多新手在这一步就卡住了,尤其是浏览器驱动那块,各种报错。别急,跟着我的节奏来,保证你半小时内跑起来第一个脚本。

2.1 安装 Selenium 库

这一步其实最简单。打开你的终端,敲一行命令就行。我个人习惯用 pip,干净利落。

pip install selenium

如果你用的是 Python 3,有时候需要指定 pip3:

pip3 install selenium

嗯,这里要注意。如果你电脑上同时有 Python 2 和 Python 3,千万别搞混了。我见过有人用 pip 装到了 Python 2 的环境里,然后脚本用 Python 3 跑,死活找不到模块。你想想看,这种低级错误排查起来多浪费时间。

装完之后,验证一下:

python -c "import selenium; print(selenium.__version__)"

如果输出版本号,比如 4.15.0,那就说明装好了。

2.2 浏览器驱动下载与路径设置

这是整个环境搭建里最坑的一步。说白了,Selenium 本身只是个遥控器,它需要浏览器驱动来真正操控浏览器。驱动就像是一个翻译官,把 Selenium 的指令翻译给浏览器听。

2.2.1 下载对应版本的驱动

不同的浏览器,驱动不一样。主流的有三种:

浏览器 驱动名称 下载地址
Chrome chromedriver https://chromedriver.chromium.org/
Firefox geckodriver https://github.com/mozilla/geckodriver/releases
Edge edgedriver https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

关键点来了:驱动版本必须和浏览器版本匹配。 我曾经因为 Chrome 自动更新了,但驱动没换,结果脚本全部罢工。排查了半小时,最后发现是版本号差了一个小版本。

避坑指南: 查看你浏览器版本的方法——Chrome 右上角三个点 → 帮助 → 关于 Google Chrome。然后去下载对应大版本号的驱动。比如 Chrome 120.x,就下载 120 开头的 chromedriver。

2.2.2 驱动放置的两种方式

驱动下载下来后,怎么用?有两种主流做法。

方式一:放到系统 PATH 里(推荐)

把 chromedriver 放到 Python 的 Scripts 目录下,或者放到 /usr/local/bin(Mac/Linux)。这样 Selenium 会自动找到它。

方式二:指定路径(更灵活)

在代码里直接写死路径。我个人习惯用这种方式,因为不同项目可能用不同版本的驱动。

from selenium import webdriver

# 指定驱动路径
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
小技巧: 如果你用 Selenium 4.x 以上版本,其实可以不用手动指定路径了。它会自动去 PATH 里找。但为了保险,我建议你还是显式指定一下,尤其是团队协作时。

2.3 第一个自动化脚本

环境搭好了,咱们来写第一个脚本。目标很简单:打开百度首页,然后打印出页面标题。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import time

# 创建 Service 对象,指定驱动路径
service = Service('/path/to/chromedriver')

# 初始化浏览器
driver = webdriver.Chrome(service=service)

# 打开百度
driver.get('https://www.baidu.com')

# 等两秒,让页面加载完
time.sleep(2)

# 获取页面标题
title = driver.title
print(f'页面标题是:{title}')

# 关闭浏览器
driver.quit()

跑一下试试。如果看到控制台输出了「百度一下,你就知道」,恭喜你,环境搭建成功了!

你想想看,就这么几行代码,你已经能操控浏览器了。是不是挺有成就感的?

2.4 常见问题与解决方案

第一次跑脚本,大概率会遇到问题。我把最常见的几个列出来:

  • 报错:'chromedriver' executable needs to be in PATH —— 驱动没找到。检查路径对不对,或者驱动有没有放到 PATH 里。
  • 报错:session not created —— 驱动版本和浏览器版本不匹配。去下载对应版本的驱动。
  • 报错:Connection refused —— 端口被占用。重启电脑一般能解决。
  • 浏览器闪一下就消失 —— 代码执行太快,没来得及看。加个 time.sleep() 或者 input() 暂停一下。
核心要点: 环境搭建的本质就是三件事——装库、下驱动、配路径。这三件事做好了,后面就顺了。别在这一步追求完美,先跑起来再说。

2.5 进阶:使用 WebDriver Manager 自动管理驱动

手动下载驱动太麻烦了,对吧?尤其是 Chrome 一更新,驱动就得跟着换。有没有自动化的办法?有。

webdriver-manager 这个库,它能自动检测浏览器版本,下载对应的驱动。

pip install webdriver-manager

然后代码变成这样:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# 自动下载并管理驱动
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

driver.get('https://www.baidu.com')
print(driver.title)
driver.quit()

你看,省心多了吧?我在团队里推广这个方案后,新人再也没因为驱动问题来找过我。

好了,环境搭建就到这里。下一章,咱们开始真正玩转元素定位——这才是爬虫自动化的核心技能。