npm 包 puppeteer-extra-plugin-stealth 使用教程

阅读时长 7 分钟读完

前言

Puppeteer 是一个 Google 开源的项目,是一个基于 Node.js 的 Headless Chrome 浏览器自动化工具,可以进行网页截图、爬虫、自动化测试等等。Puppeteer 通过启动一个真实的 Chrome 浏览器来对浏览器进行控制。由于使用了真实浏览器,因此在运行一些简单的操作时,Puppeteer 往往需要很长时间才能完成。为了解决这个问题,Puppeteer 提供了 headless 模式,也就是无头浏览器模式,这样操作会更加快速。

但是,一些网站会检测到使用 Puppeteer,从而拒绝访问或者返回错误信息。为了解决这个问题,开发者们开发了一些 npm 包,其中最为知名的就是 puppeteer-extra 及其插件。其中一个插件就是 puppeteer-extra-plugin-stealth,这个插件能够让 Puppeteer 在操作时更难被检测到,从而避免被网站拦截。

本文将介绍 puppeteer-extra-plugin-stealth 的使用教程,帮助读者更好地了解和使用这个插件。

安装和依赖

在使用 puppeteer-extra-plugin-stealth 之前,需要先安装 puppeteerpuppeteer-extra 两个 npm 包,这两个包是 puppeteer-extra-plugin-stealth 的依赖。

可以通过以下命令安装:

使用方法

下面将介绍如何使用 puppeteer-extra-plugin-stealth 来避免被检测到。

引入插件

在使用 puppeteer-extra-plugin-stealth 之前,需要先引入这个插件:

这里使用了一种比较简单的语法来引入插件,即在 puppeteer 对象上使用 use 方法,并将 StealthPlugin 对象传入。

简单演示

下面是一个简单的使用 puppeteer-extra-plugin-stealth 的示例:

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

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

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

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

------

在这个示例中,我们先启动了一个 headless 的 Chrome 浏览器,然后打开了一个网站 https://bot.sannysoft.com/,这个网站是一个用于测试是否使用了机器人的网站。在这个网站中,有一个用于测试的验证码输入框,我们在输入框中输入了 test 并进行了截图,最后关闭了浏览器。

如果不使用 puppeteer-extra-plugin-stealth,则在访问这个网站时可能会看到下面的提示:

使用 puppeteer-extra-plugin-stealth 后,就可以避免出现这个提示了。

更多设置

在使用 puppeteer-extra-plugin-stealth 时,可以通过一些设置来进一步提高隐身效果,下面列举了一些常用的设置:

-- -------------------- ---- -------
-----------------------------
  ---------- --------- ------
  ------- ------- ------
  --------- --------
  ---------- -
    ------- -
      ------------ -
        ----------------------------------------
        ---------------------
        -------------------------------------------
        -------------------------
        -------------------------
        --------------------------
        -----------------------
        --------------------------------------
        -------------------------
        ---------------------
        --------------------------
        ----------------------------------------------
        ---------------------------
        --------------------------
        -----------------------------
        ---------------------------
        -----------------------
        -----------------
        --------------------
        -------------------------
        ---------------------------
        ---------------
        -----------------------------
        -----------------
        -------------
        ---------------
        --------------
        -------------------------
        -----------------------
        ----------------------
      --
      ----- -
        ---------------
        ---------------------------
        ---------------------
        -------------------------
        -----------------------
        --------------------
        ------------------------------
        ------------------------------------------
        -----------------
        ----------------------------------
        -------------------------
      --
    --
  --
---
  • languages:设置了语言,这里设置了 en-USen
  • vendor: 设置了厂商,这里设置了 Google Inc.
  • platform: 设置了平台,这里设置了 Win32
  • webdriver: 这里设置了一些 Chrome 的参数,用于防止被检测到是无头浏览器

这里的所有设置都是可选的,可以根据自己的需求来设置。这些设置可以帮助我们更好地隐藏浏览器,避免被目标网站检测到。

总结

本文介绍了 puppeteer-extra-plugin-stealth 的使用教程并提供了示例代码。希望读者能够通过这篇文章了解和学习如何避免使用 Puppeteer 时被网站检测到,进一步提高自己的开发效率。

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