npm 包 puppeteer-extra 使用教程

阅读时长 5 分钟读完

前言

在前端开发过程中,经常会遇到需要自动化测试、爬虫、数据采集等任务,而这时候我们通常需要用到一个强大的浏览器自动化工具——puppeteer。puppeteer 是由 Google 团队开发的一款 Node.js 模块,提供了一组用于控制 Chrome 或者 Chromium 的 API,可用于模拟各种用户操作行为,同时也支持爬虫、自动化测试等任务。而今天,我们将会介绍一个基于 puppeteer 的 npm 包——puppeteer-extra,在它的基础上我们可以自定义更多的功能,并拓展 puppeteer 的应用场景。

安装

为了使用 puppeteer-extra,我们首先需要安装 puppeteer:

npm install puppeteer

接下来,我们需要安装 puppeteer-extra:

npm install puppeteer-extra

同时,建议也安装 puppeteer-extra-plugin-stealth,以避免 puppeteer 被网站检测到并阻止访问:

npm install puppeteer-extra-plugin-stealth

使用

puppeteer-extra 提供了一组默认的插件,我们可以通过以下代码进行初始化:

我们也可以通过 puppeteer-extra 的 API 添加自定义的插件,以实现更多的功能拓展:

其中,my-plugin.js 如下所示:

-- -------------------- ---- -------
----- --------- - --------------------------

-------------- - -- -- -
  ----- ------ - -
    ----- ------------ -- ----
    -------- -------- -- -----
    ------------- - -- ----- --------------- ---
      ---------- ----------
    --
    -- ----------------- --------- -------------
    ----- ------------------- -
      ----------------- ----------
    -
  -
  ------ ------
-

这样,我们就可以通过自定义的插件,实现更多便捷的操作。

总结

puppeteer-extra 作为 puppeteer 的拓展包,提供了更多的功能扩展和应用场景,让我们可以更好地完成自动化测试、爬虫、数据采集等任务。在实际开发中,我们可以根据自己的需求,自定义相关插件,以实现更优秀的功能。

示例代码

以下是一个简单的示例代码,实现了通过 puppeteer-extra 实现百度搜索的功能:

-- -------------------- ---- -------
----- --------- - --------------------------
----- ------------- - -----------------------------------------
----- --------------- - -------------------------------------------

------------------------------
--------------------------------

----- ----------- - -----------------

----- -------- ------------------- -
  ----- ------- - ----- ------------------
    --------- -----
  --

  ----- ---- - ----- -----------------
  ----- -----------------------------------

  ----- ---------------- ------------
  ----- -----------------
  ----- ------------------------

  ----- ------- - ----- -------------------- --- ----- --
    ----------- -- --
      ------ -------------------
      ---- -------
    ---
  -

  ------------------- ------- --- ----------------------- --------
-

-------------------

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/194039