🎁 惊喜折扣:订阅享受 1折优惠!

  • 价钱
  • 文档
ZH
联系

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

产品

指纹浏览器
Nstbrowser RPA
绕过Cloudflare
Browserless
网页解锁器

解决方案

云端指纹浏览器
多账户管理
网页抓取&自动化
反机器人检测

资源

价格
下载
RPA 市场
联盟计划
合作伙伴
博客
版本更新

支持

联系

文档

法规

条款
隐私政策
Cookie 政策

产品解决方案资源支持法规

产品解决方案资源

支持法规

© 2025 NST LABS TECH LTD. ALL RIGHTS RESERVED

返回博客
获取Cloudflare  Turnstile 令牌
Cloudflare Bypass

如何使用 Nstbrowser 获取 Cloudflare Turnstile 令牌?

如何使用 Nstbrowser 获取 Cloudflare Turnstile 令牌? 在本指南中,您可以按照我们的 4 个有效步骤,使用 Nstbrowser 完成 Cloudflare Turnstile 令牌的获取。
May 06, 2024
Cloudflare Turnstile token

欢迎阅读本教程!在本教程中,我们将使用 Nstbrowser 完成从 Cloudflare 上获取 Turnstile 令牌的全部步骤。

通过简单的演示,然后根据具体步骤完成您的工作!

getting Cloudflare Turnstile Token with Nstbrowser

什么是 Cloudflare?

首先,让我们来谈谈 Cloudflare。Cloudflare 成立于 2009 年,是一家提供旨在提高网站和互联网应用程序的安全性、速度和可用性的解决方案的知名公司。

Cloudflare 主要提供以下服务:

  • 内容分发网络(CDN)
  • DDoS 保护
  • 网站应用防火墙 (WAF)
  • DNS 服务
  • 负载平衡
  • SSL/TLS 加密
  • 边缘计算

Cloudflare Turnstile 如何工作?

Cloudflare Turnstile 为网站和网络应用程序的用户身份验证和访问控制提供了强大而灵活的解决方案。它有助于增强安全性、保护敏感资源并改善用户体验。

使用 Nstbrowser 获取 Cloudflare Turnstile 令牌的 4 个有效步骤

其实获取令牌的方法并不难!

步骤 1:安装 Nstbrowser

  • 从以下网址下载 Nstbrowser 客户端安装程序:https://www.nstbrowser.io/download。
  • 然后,打开安装程序,按照提示步骤完成安装过程。
  • 安装完成后,您就可以在设备上找到并启动 Nstbrowser 客户端了。

步骤 2:登录

为了获得更好的体验,您需要在在 Nstbrowser 官方网站上注册一个新账户:https://app.nstbrowser.io/account/register。

使用注册信息登录 Nstbrowser 客户端。登录成功后,别忘了在 API 菜单中生成自己的专属API Key!

generate API key
  • 注意:请确保您下载了可用的内核。如果没有,请在 Nstbrowser 客户端手动下载。您需要做的是:点击右上角的 头像 → 设置 → 版本 。

第 3 步:编写代码以获取 Cloudflare Turnstile 令牌

现在!是时候创建一个节点项目了。如果你创建了,这项工作就完成了:

  • 在项目目录中创建 api.js 文件
  • 插入以下代码,创建并启动随机指纹浏览器实例。
JavaScript Copy
// Api Docs: https://apidocs.nstbrowser.io/api-5418530
export async function getBrowserWSEndpoint(apiKey) {
  const config = {
    once: true, // one_time browser
    headless: false, // support: true, 'new'
    autoClose: false,
    // remoteDebuggingPort: 9223,
    fingerprint: {
      name: 'test-turnstile',
      platform: 'windows', // support: windows, mac, linux
      kernel: 'chromium', // only support: chromium
      kernelMilestone: '120',
      hardwareConcurrency: 2, // support: 2, 4, 8, 10, 12, 14, 16
      deviceMemory: 8, // support: 2, 4, 8
      proxy: "" // input format: schema://user:password@host:port
    },
  };

  const query = new URLSearchParams({
    'x-api-key': apiKey,
    config: JSON.stringify(config),
  }).toString();

  const resp = await fetch(`http://localhost:8848/api/agent/devtool/launch?${query}`)
  const json = await resp.json();
  return json.data
}

有关更多 API 参数,请参阅 Nstbrowser API 文档
您对网页抓取和 Browseless 有什么好的想法或疑惑吗?
快来看看其他开发人员在 Discord 和 Telegram 上分享了什么!

  • 接下来,创建 turnstile.js 文件,并插入以下代码,以便通过 Puppeteer 自动检索 Turnstile Token 数据。
JavaScript Copy
import puppeteer from "puppeteer-core";
import {getBrowserWSEndpoint} from "./api.js";

const apiKey = 'API Key'

async function delay(time) {
  return new Promise(resolve => setTimeout(resolve, time));
}

let browser = null;
async function getTurnstileToken() {
  const {webSocketDebuggerUrl} = await getBrowserWSEndpoint(apiKey)
  browser = await puppeteer.connect({
    browserWSEndpoint: webSocketDebuggerUrl,
    defaultViewport: null,
  });

  const page = await browser.newPage();

  let resolveToken = null;
  const tokenPromise = new Promise(resolve => resolveToken = resolve);

  // This method is used to monitor whether the Checkbox exists on the page and click it
  const checkbox = async () => {
    while (true) {
      try {
        if (page.isClosed()) return;
        const targetFrameUrl = 'cdn-cgi/challenge-platform/';
        const iframe = page.frames().find((frame) => frame.url().includes(targetFrameUrl));
        if (iframe) {
          const box_element = await iframe.waitForSelector('input[type="checkbox"]', {
            timeout: 1000,
            visible: true,
          });
          await box_element.click();
        }
      } catch (e) {
      } finally {
        await delay(1000)
      }
    }
  }

  // This method is used to monitor whether the token is returned
  const findToken = async () => {
    while (true) {
      if (page.isClosed()) return;
      const response = await page.evaluate(() => {
        const token = window?.turnstile?.getResponse()
        if (token) {
          return {token: token}
        }
      });
      if (response) {
        resolveToken(response);
        return;
      }
      await delay(1000)
    }
  }

  findToken().then()
  checkbox().then()

  await page.goto('https://xxx.com/login.html');
  return tokenPromise;
}

// Test get trunstile token
getTurnstileToken()
  .then(result => console.log(result))
  .catch(err => console.error(err))
  • 在终端中执行 node turnstile.js,等待结果。输出结果可能显示为
JavaScript Copy
{ token: '0.ZDHeg0BH58fAptHKige3NNlwavjsNJtp9mIHOxV6Qbqp30cpqwi7ib2M7utunoXsOAf2EYd71XFzJnMw2rA_Zi5VuAFqe-CaXx7bHdecjxrjOaTdOGWQ_0mk9WA3v-FfJgXaJZD5FVmp1UCtQuzrxt4__TVYwytrbtrKbFpBJKqKH6CdY5MCnORHgcjc2FXS9PD0rCBdzJuicWJedZkmDvvGeWG2iKQ5D1T85oUoqkKpT-NMkSt1webVc_Yfa0sPXmbw8DKkYsauwJPvqfbqyfSdrDi17qK2APCQANeWdXgd-1NsHdlkV4OMdZuunbsoROJVXIOu-i1R_8rkWKiejsGQfkubX8Y8_xempdEO0LfYEBmrMUbPzyr12QcEefE5r_BPmdn_RTX_dU2kh734G3qaodxCcOOcCo5UKM1cvHI.D_fh7cB0Bxhb4b0PHB7jew.451b703e4df2a4e8cd61d90d175329883eb3af85d72e77787959c0b52fe112e2' }

第 4 步:提交表单请求

获得 Turnstile 令牌后,我们通常需要将该令牌作为表单请求的一部分提交给服务器。根据实际网站的不同,这一步骤的实现方式也会有所不同。

因此,您需要根据实际网站的要求修改并应用以下代码示例。

JavaScript Copy
async function submitForm(token) {
  const formData = new FormData();
  formData.append('username', 'your_username');
  formData.append('password', 'your_password');
  formData.append('cf-turnstile-response', token);
  const response = await fetch('
https://xxx.com/login
', {
    method: 'POST',
    body: formData,
  });
  if (response.ok) {
    console.log('Form submitted successfully!');
  } else {
    console.error('Form submission failed!');
  }
}

使用注意事项

在上述代码中,我们创建了一个新的 FormData 对象,并添加了用户名、密码和 Cloudflare Turnstile 令牌。请注意,您需要根据实际网站要求修改这些值:

  • 用户名
  • 密码
  • cf-turnstile-response
  • https://xxx.com/login

有关完整的 Cloudflare Turnstile 代码示例,请参阅 GitHub

更多
如何使用Nstbrowser的无头浏览器自动解决Cloudflare Turnstile (2025)
BrowserlessCloudflare BypassHeadless Browser
如何使用 Nstbrowser 的 Browserless 自动解决 Cloudflare Turnstile (2025)
学习如何使用Nstbrowser的无头浏览器服务和Puppeteer绕过Cloudflare Turnstile。本指南将引导您完成设置、实现以及在确保合规性和效率的同时自动化网页抓取任务的优势。
Mar 07, 2025Robin Brown
如何使用Nstbrowser的无头浏览器绕过Cloudflare 5s挑战(2025)
BrowserlessCloudflare Bypass
如何使用Nstbrowser的无头浏览器绕过Cloudflare 5s挑战(2025)
学习如何使用 Nstbrowser 的无浏览器服务和 Puppeteer 来绕过 Cloudflare 的 5s 挑战。本指南将引导您完成设置、实现以及在确保合规性和效率的同时自动化网页抓取任务的优势。
Mar 06, 2025Robin Brown
Cloudflare错误1006、1007和1008
Cloudflare Bypass
Cloudflare 错误 1006、1007、1008:它们是什么,如何避免?
Cloudflare 错误 1006、1007 和 1008 表示拒绝访问。它们表明来自您 IP 地址的流量已被禁止。如何避免这些错误?请参阅本文。
Jun 06, 2024Robin Brown
Cloudflare Error 1015:是什么以及如何避免?
Cloudflare Bypass
Cloudflare Error 1015:是什么以及如何避免?
本文深入探讨了 Cloudflare Error 1015 的原因、影响和潜在解决方案,揭示了用户和网站管理员如何有效应对这一挑战。
May 24, 2024
Cloudflare Erorr 1020
Cloudflare Bypass
Cloudflare Erorr 1020: 是什么?如何避免?
Cloudflare 1020 错误是指访问被拒绝错误。为什么会出现这个错误呢?如何避免它?请在这篇文章中找到答案。
May 23, 2024Robin Brown
获取Cloudflare  Turnstile 令牌
Cloudflare Bypass
如何使用 Nstbrowser 获取 Cloudflare Turnstile 令牌?
如何使用 Nstbrowser 获取 Cloudflare Turnstile 令牌? 在本指南中,您可以按照我们的 4 个有效步骤,使用 Nstbrowser 完成 Cloudflare Turnstile 令牌的获取。
May 06, 2024
目录