2、环境搭建:Node.js 与 Python 环境配置、Puppeteer 安装与验证、Playwright 安装与验证、Selenium WebDriver 配置
好,咱们正式开始动手了。
环境搭建这事儿,说难不难,说简单吧,我见过太多同学卡在这一步。不是装不上,就是版本冲突,折腾半天连个浏览器都打不开。所以这一章,我带你一步步走,把坑提前填上。
2.1 Node.js 环境配置
Puppeteer 和 Playwright 都是基于 Node.js 的。所以 Node.js 是咱们的第一道门槛。
下载与安装
我个人习惯去官网下载 LTS 版本。别追新,LTS 稳得很。
- 访问
https://nodejs.org/,下载 LTS 版本 - Windows 直接下一步下一步,Mac 用 pkg 安装包
- Linux 用户建议用 nvm 管理版本,方便切换
装完之后,打开终端验证一下:
node -v
npm -v
能看到版本号,就说明成了。我遇到过有人输完命令没反应,结果发现是终端没重启。嗯,这种小细节要注意。
npm config set registry https://registry.npmmirror.com
2.2 Python 环境配置
Selenium 虽然也有 Node.js 版本,但 Python 生态更成熟。咱们用 Python 3.8 以上版本。
安装步骤
- Windows 去官网下载安装包,记得勾选「Add Python to PATH」
- Mac 用
brew install python3 - Linux 用包管理器安装,比如
apt install python3 python3-pip
验证:
python3 --version
pip3 --version
这里有个坑——Windows 用户可能会发现 python 命令打不开。这是因为系统里装了多个 Python 版本。我建议直接用 python3 和 pip3,省心。
2.3 Puppeteer 安装与验证
Puppeteer 是 Google 团队维护的,专门操作 Chrome 浏览器。它的安装很简单,但有个隐藏的坑。
安装命令
npm init -y
npm install puppeteer
装完之后,Puppeteer 会自动下载一个 Chromium 浏览器。这个下载过程可能会比较慢,因为 Chromium 有几百兆。如果你在公司内网,可能会卡住。
我遇到过这种情况:等了半小时还没下完,最后发现是网络问题。解决办法有两个:
- 用
PUPPETEER_SKIP_DOWNLOAD跳过下载,手动指定本地 Chrome - 或者直接用
puppeteer-core,它不包含浏览器
验证代码
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
await browser.close();
})();
运行之后,如果控制台打印出「Example Domain」,那就说明环境没问题。
puppeteer.launch({ headless: false })
2.4 Playwright 安装与验证
Playwright 是微软出的,比 Puppeteer 晚,但功能更强。它支持 Chromium、Firefox 和 WebKit 三种浏览器。
安装命令
npm install playwright
npx playwright install
注意,这里有两个步骤。第一步装包,第二步装浏览器。第二步会下载三个浏览器,加起来大概 1GB 左右。我第一次装的时候吓了一跳,心想这玩意儿怎么这么大。
不过好处是,你一次装好,三个浏览器都能用。省得来回切换。
验证代码
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
await browser.close();
})();
运行方式和 Puppeteer 几乎一样。如果你换成 firefox 或 webkit,就能测试其他浏览器了。
2.5 Selenium WebDriver 配置
Selenium 是老牌工具了,虽然用起来比前两个麻烦点,但胜在稳定、生态好。
安装 Python 包
pip3 install selenium
然后你需要下载一个 WebDriver。Chrome 对应 chromedriver,Firefox 对应 geckodriver。
下载 WebDriver
- ChromeDriver:
https://chromedriver.chromium.org/ - GeckoDriver:
https://github.com/mozilla/geckodriver/releases
下载之后,把可执行文件放到 PATH 环境变量里。或者直接放在项目目录下也行。
这里有个常见的坑——Chrome 版本和 ChromeDriver 版本必须匹配。我曾经因为 Chrome 自动更新了,结果 ChromeDriver 没更新,脚本直接报错。解决办法是用 webdriver-manager 自动管理版本。
pip3 install webdriver-manager
验证代码
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get('https://example.com')
print(driver.title)
driver.quit()
运行之后,你会看到浏览器自动打开,然后关闭。如果打印出标题,那就说明环境配好了。
options.add_argument('--headless')。不过调试的时候,我建议先开着浏览器,方便看效果。
2.6 三种工具对比
咱们把这三个工具放在一起看看,方便你选型。
| 特性 | Puppeteer | Playwright | Selenium |
|---|---|---|---|
| 语言支持 | Node.js | Node.js、Python、Java、.NET | 多语言 |
| 浏览器支持 | Chrome/Chromium | Chromium、Firefox、WebKit | Chrome、Firefox、Safari、Edge 等 |
| 安装复杂度 | 低 | 中 | 高(需手动配 WebDriver) |
| 性能 | 高 | 高 | 中 |
| 社区生态 | 好 | 好 | 非常好 |
我个人建议:做爬虫优先用 Playwright,因为它支持多浏览器,而且 API 设计更现代。如果项目要求兼容老系统,那就用 Selenium。Puppeteer 适合纯 Chrome 场景,简单直接。
好,环境搭好了,下一章咱们就开始写真正的爬虫脚本了。