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 下载包可能会很慢。建议配个淘宝镜像: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 版本。我建议直接用 python3pip3,省心。

注意: 千万别用系统自带的 Python 2.7,那玩意儿已经停止维护了。我曾经在一个老项目里吃过亏,折腾半天才发现是 Python 版本不对。

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 默认是无头模式,也就是你看不到浏览器界面。如果想看界面,加个参数: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 几乎一样。如果你换成 firefoxwebkit,就能测试其他浏览器了。

个人经验: 做爬虫的话,我建议优先用 Chromium。因为 Chrome 的市场份额最大,兼容性最好。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()

运行之后,你会看到浏览器自动打开,然后关闭。如果打印出标题,那就说明环境配好了。

注意: Selenium 默认不是无头模式。如果想无头运行,需要加参数: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 场景,简单直接。

总结一下: 环境搭建其实就三步——装语言环境、装工具包、验证运行。每一步都有坑,但咱们都提前说了。你跟着走一遍,应该半小时内就能搞定。

好,环境搭好了,下一章咱们就开始写真正的爬虫脚本了。