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

前言

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


猜你喜欢

  • npm 包 @schematics/angular 使用教程

    介绍 @schematics/angular 是一个 Angular 项目生成器工具,它能够帮助开发者快速创建一个 Angular 项目或者添加新的组件、服务,指令等等。

    5 年前
  • npm包current-script-polyfill使用教程

    简介 在 Web 开发中,有时需要获取当前脚本的 URL,但是直接使用 document.currentScript 得到的 URL 不一定正确。current-script-polyfill 这个 ...

    5 年前
  • npm 包 @vue/web-component-wrapper 使用教程

    在前端开发中,我们经常需要将 Vue 项目打包成 Web Components,以便在其他框架或 web 页面中使用。但 Vue 自身并没有提供方便的打包工具,这时就可以考虑使用 @vue/web-c...

    5 年前
  • npm 包 @vue/preload-webpack-plugin 使用教程

    介绍 @vue/preload-webpack-plugin 是一个 webpack 插件,它可以以一种优雅的方式自动管理您的 Vue 应用程序中的 preload 和 prefetch 链接。

    5 年前
  • npm 包 @vue/cli-plugin-vuex 使用教程

    简介 @vue/cli-plugin-vuex 是一个 Vue Cli 插件,用于自动配置 Vuex 并生成模板文件。如果你使用 Vue Cli 进行开发,为了方便解决多组件之间的状态管理问题,那么 ...

    5 年前
  • npm 包 @vue/cli-plugin-router 使用教程

    前言 在使用 Vue.js 开发单页应用 (SPA) 的过程中,经常需要使用路由进行页面跳转和管理。Vue Router 是 Vue.js 官方的路由管理器,可以轻松地实现页面路由的配置和管理。

    5 年前
  • npm 包 @vue/cli-overlay 使用教程

    引言 在 Vue.js 开发过程中, @vue/cli-overlay 是一个非常有帮助和方便的 npm 包。它提供了开发者在开发 Umis 前端项目时进行调试、测试以及代码质量检测等功能,在项目开发...

    5 年前
  • npm 包 @soda/friendly-errors-webpack-plugin 使用教程

    简介 在前端开发中,webpack 是一个非常强大和常用的工具,它能够对JS和CSS等资源进行打包、压缩等操作。然而,由于 webpack 的配置比较复杂,容易出错,导致错误信息不够友好,给开发带来很...

    5 年前
  • npm 包 @intervolga/optimize-cssnano-plugin 使用教程

    对于前端开发人员而言,优化网站性能是一个非常重要的任务。在这个过程中,CSS 的压缩和优化也显得尤为重要。@intervolga/optimize-cssnano-plugin 是一个基于 webpa...

    5 年前
  • npm 包 @vue/cli-shared-utils 使用教程

    Vue CLI 是一个构建 Vue.js 项目的标准工具,它提供了一个脚手架,可以让我们快速建立基于 Vue.js 的项目,并且包含了很多实用的配置和插件。而 @vue/cli-shared-util...

    5 年前
  • npm 包 @vue/babel-preset-app 使用教程

    在移动应用的开发过程中,前端技术的选择和运用显得尤为重要。现在市场上有很多流行的前端框架,Vue.js 作为其中的佼佼者,一直受到广泛的欢迎和使用。 在 Vue.js 开发过程中,使用 Babel 进...

    5 年前
  • npm 包 bee-queue 使用教程

    在现代 Web 开发中,异步任务处理变得越来越重要。而基于 Node.js,处理异步任务的一个好帮手就是 bee-queue。 bee-queue 是一个基于 Redis 的用于 Node.js 的分...

    5 年前
  • npm 包 @casual-simulation/crypto-browser 使用教程

    前言 随着互联网技术飞速发展,前端开发已经成为了一个非常火热的职业。前端开发人员需要不断学习新技术,才能保持竞争力。其中,加密技术是前端开发人员必须掌握的知识之一。

    5 年前
  • npm 包 @casual-simulation/crypto 使用教程

    前言 在现代 Web 开发中,数据安全性被重视,而加密技术是实现数据安全性的必要手段之一。@casual-simulation/crypto 是一个开源的 npm 包,它提供了基本的加密和解密方法,帮...

    5 年前
  • npm 包 @casual-simulation/causal-trees 使用教程

    在前端开发中,树结构是一种常见的数据结构,可以用于构建导航栏、分类列表等界面。而 @casual-simulation/causal-trees 则是一个实现了版本控制和崩溃恢复的树结构库。

    5 年前
  • npm 包 @types/yaml 使用教程

    在前端开发中,我们经常需要处理和转换 YAML 格式的文件。针对 TypeScript 项目,@types/yaml 是一个非常实用的 npm 包,它提供了类型定义和代码提示,帮助我们更便捷地操作 Y...

    5 年前
  • npm 包 @blockware/ui-web-utils 使用教程

    介绍 @blockware/ui-web-utils 是一个前端常用工具集合,包含了常见的字符串处理、日期处理、数组处理、计算等工具函数及 UI 组件,本文将详细介绍其使用方法。

    5 年前
  • npm 包 @blockware/ui-web-types 使用教程

    介绍 在前端开发中,我们经常会使用第三方库和框架,而这些库和框架其实都是以 npm 包的形式存在的。@blockware/ui-web-types 就是一种非常实用的 npm 包,它主要用于管理 Ty...

    5 年前
  • npm 包 types-ethereumjs-util 使用教程

    介绍 types-ethereumjs-util 是一个使用 TypeScript 开发的 npm 包,它提供了许多与以太坊有关的实用工具函数,例如地址和私钥生成、交易签名和验证、数据编码和解码等等。

    5 年前
  • npm 包 @warren-bank/ethereumjs-tx-sign 使用教程

    前言 在 Ethereum 区块链上开发智能合约应用的过程中,我们经常需要构造和发送交易。交易包括转账、调用合约等一系列操作,其中比较重要的一步就是进行交易签名。本文将介绍如何使用 @warren-b...

    5 年前

相关推荐

    暂无文章