Puppeteer 是一个非常实用的 JavaScript 库,它为开发者提供了一个高级的 API,能够通过 DevTools Protocol 或 WebDriver BiDi 来控制 Chrome 或 Firefox 浏览器。默认情况下,Puppeteer 以无头模式(无可见用户界面)运行,这为各种自动化任务提供了便利。
安装 Puppeteer 可以通过多种包管理工具进行。例如,使用 npm 时,可以通过 npm i puppeteer
命令进行安装,该命令会在安装过程中下载兼容的 Chrome 浏览器。如果不想下载 Chrome 浏览器,也可以选择安装 puppeteer-core
,通过 npm i puppeteer-core
命令来实现。
以下是一个使用 Puppeteer 的示例:
import puppeteer from 'puppeteer'; // 或者 import puppeteer from 'puppeteer-core';
// 启动浏览器并打开一个新的空白页面
const browser = await puppeteer.launch();
const page = await browser.newPage();
// 导航到一个 URL
await page.goto('https://developer.chrome.com/');
// 设置屏幕尺寸
await page.setViewport({width: 1080, height: 1024});
// 在搜索框中输入内容
await page.locator('.devsite-search-field').fill('automate beyond recorder');
// 等待并点击第一个结果
await page.locator('.devsite-result-item-link').click();
// 定位具有唯一字符串的完整标题
const textSelector = await page.locator('text/Customize and automate').waitHandle();
const fullTitle = await textSelector?.evaluate(el => el.textContent);
// 打印完整标题
console.log('The title of this blog post is "%s".', fullTitle);
await browser.close();
总的来说,Puppeteer 为开发者提供了强大的浏览器控制能力,使得各种自动化任务变得更加简单和高效。