返回

Puppeteer 爬虫框架的入门指南

前端

什么是 Puppeteer?

Puppeteer 是一个 Node.js 库,可以用来操作 Chrome 浏览器。它允许你控制浏览器,就像你使用鼠标和键盘一样。你可以用它来抓取网页数据、自动化网页操作、测试网页等。

Puppeteer 的优势

  • 简单易用: Puppeteer 的 API 非常简单易用,即使你没有编程经验,也可以快速入门。
  • 自动化操作: Puppeteer 可以自动化网页操作,例如点击按钮、输入文本、滚动页面等。
  • 兼容性好: Puppeteer 可以运行在多种平台上,包括 Windows、macOS 和 Linux。
  • 社区活跃: Puppeteer 有一个活跃的社区,你可以在这里找到许多教程、示例代码和帮助。

Puppeteer 的基本用法

  1. 安装 Puppeteer
npm install puppeteer
  1. 创建一个 Puppeteer 实例
const puppeteer = require('puppeteer');

const browser = await puppeteer.launch();
  1. 创建一个页面
const page = await browser.newPage();
  1. 导航到一个页面
await page.goto('https://www.google.com');
  1. 等待页面加载完成
await page.waitForNavigation();
  1. 获取页面内容
const html = await page.content();
  1. 关闭页面和浏览器
await page.close();
await browser.close();

Puppeteer 的示例代码

以下是一些 Puppeteer 的示例代码:

  • 抓取网页数据:
const puppeteer = require('puppeteer');

const browser = await puppeteer.launch();
const page = await browser.newPage();

await page.goto('https://www.google.com');
await page.waitForNavigation();

const title = await page.title();
const html = await page.content();

console.log(title);
console.log(html);

await page.close();
await browser.close();
  • 自动化网页操作:
const puppeteer = require('puppeteer');

const browser = await puppeteer.launch();
const page = await browser.newPage();

await page.goto('https://www.google.com');
await page.waitForNavigation();

await page.type('input[name="q"]', 'Puppeteer');
await page.click('button[type="submit"]');
await page.waitForNavigation();

const results = await page.$('a');

for (const result of results) {
  const title = await result.text();
  const href = await result.getAttribute('href');

  console.log(title);
  console.log(href);
}

await page.close();
await browser.close();

结语

Puppeteer 是一个非常强大的工具,可以用来做很多事情。本文只是介绍了 Puppeteer 的基本用法,如果你想了解更多,可以参考 Puppeteer 的官方文档。