如何在 Deno 中使用 puppeteer

如果你是一个前端开发人员,你一定用过 Puppeteer。Puppeteer 是一个 Node.js 库,它提供了对谷歌 Chrome 或 Chromium 的控制,使得开发人员可以编写自动化测试、爬虫、屏幕截图等应用程序。最近,Deno 开始变得流行,让我们来看一下如何在 Deno 中使用 Puppeteer。

安装 Deno

首先,你需要安装 Deno。你可以使用以下命令行来安装 Deno:

或者你也可以通过官方网站 https://deno.land/ 下载安装程序。

创建项目

接下来,我们需要创建一个新的项目。在你的命令行下使用以下命令行:

这将会在你的文件系统中创建一个新的文件夹 puppeteer-deno 并且创建了一个名为 index.ts 的新文件。我们将使用 TypeScript 来编写我们的代码。

安装 Puppeteer

接下来,我们需要安装 Puppeteer。你可以使用以下命令行来安装 Puppeteer:

这会下载最新版本的 Puppeteer 并将其安装在默认路径下(例如 $HOME/.deno/bin)。这个过程可能需要一段时间,具体取决于你的网络连接速度。

编写代码

接下来,我们将编写一个简单的程序来抓取 Google 的网页和第一条搜索结果。在 index.ts 文件中输入以下代码:

import { launch } from "https://deno.land/x/puppeteer/mod.ts";

async function main() {
  const browser = await launch();
  const page = await browser.newPage();
  
  await page.goto("https://www.google.com");
  
  const searchInput = await page.$("[name=q]");
  await searchInput?.type("deno");
  
  const searchButton = await page.$("[name=btnK]");
  await searchButton?.click();
  
  await page.waitForNavigation();
  
  const firstResult = await page.$("#rso > div:nth-child(1) > div > div > div > div.r > a");
  const text = await page.evaluate((el) => el.textContent, firstResult);
  
  console.log(text);
  
  await browser.close();
}

main();

下面是这个程序的工作方式:它启动了一个新的浏览器进程,创建了一个新的页面,导航到 Google,输入搜索词 "deno" 并点击搜索按钮,等待页面加载完成,然后从第一条搜索结果中获取文本内容并将其打印到控制台中,最后关闭浏览器。

你可以使用以下命令行来运行这个程序:

这会启动程序并爬取 Google 网页的第一个搜索结果。

总结

在本文中,我们学习了如何在 Deno 中使用 Puppeteer。我们首先安装了 Deno,然后创建了一个新的项目并安装了 Puppeteer。我们编写了一个简单的程序来抓取 Google 的网页和第一个搜索结果。这个例子可以帮助你入门 Deno 和 Puppeteer,并为你以后更复杂的应用程序提供了基础。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65b373edadd4f0e0ffc86109