产品集成资源文档定价
立即开始

© 2026 CapSolver. All rights reserved.

联系我们

Slack: lola@capsolver.com

产品

  • reCAPTCHA v2
  • reCAPTCHA v3
  • Cloudflare Turnstile
  • Cloudflare Challenge
  • AWS WAF
  • 浏览器插件
  • 更多验证码类型

集成

  • Selenium
  • Playwright
  • Puppeteer
  • n8n
  • 合作伙伴
  • 查看所有集成

资源

  • 推荐返佣系统
  • 官方文档
  • API 参考
  • 博客
  • 常见问题 (FAQ)
  • 术语表
  • 系统状态

法律声明

  • 服务条款
  • 隐私政策
  • 退款政策
  • 请勿出售我的信息
博客/All/使用 Puppeteer 解决 Cloudflare 问题
Aug28, 2024

使用 Puppeteer 解决 Cloudflare 问题

Anh Tuan

Anh Tuan

Data Science Expert

如何使用 Puppeteer 解决 Cloudflare

简介

Cloudflare 是一项强大的服务,为网站提供安全性和性能增强。它通过实施各种安全机制来保护网站免受各种威胁,包括 DDoS 攻击和恶意机器人。虽然这些保护措施对网站所有者有利,但它们会给参与网页抓取和自动化的开发人员带来重大挑战。Cloudflare 的防御措施通常包括 CAPTCHA、JavaScript 挑战和浏览器检查,所有这些都是为了阻止自动脚本。对于那些使用 Puppeteer 等工具来自动化任务的人来说,这些障碍可能是重大障碍。在本指南中,我们将逐步介绍如何使用 Puppeteer 有效地绕过和解决 Cloudflare 的保护措施,使您能够继续进行自动化项目而不会被打断。

使用 Puppeteer 解决 Cloudflare 的分步指南

第 1 步:设置 Puppeteer

首先,您需要设置 Puppeteer,这是一个 Node.js 库,提供一个高级 API 来控制 Chrome 或 Chromium。此工具广泛用于自动化任务、测试和抓取网站。

从使用 npm 安装 Puppeteer 开始:

bash Copy
npm install puppeteer

安装完成后,您可以编写一个简单的脚本,启动一个浏览器实例并导航到受 Cloudflare 保护的网站:

javascript Copy
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto('https://example.com'); // 替换为您的目标 URL
  await page.screenshot({ path: 'before-cf.png' });

  // 处理 Cloudflare 保护措施的后续步骤

  await browser.close();
})();

这段脚本会启动浏览器,导航到指定的 URL 并截取屏幕截图。然而,仅仅访问网站可能会触发 Cloudflare 的安全检查,因此需要采取额外的步骤来处理它们。

第 2 步:处理 Cloudflare 的 JavaScript 挑战

Cloudflare 经常使用 JavaScript 挑战来验证请求是否来自合法浏览器。这些挑战通常包括运行需要几秒钟才能完成的 JavaScript 代码。Puppeteer 可以通过等待必要的脚本执行来轻松地处理这些检查:

javascript Copy
await page.waitForTimeout(10000); // 等待 10 秒以进行 Cloudflare 的验证
await page.screenshot({ path: 'after-cf.png' });

这种方法适用于基本的检查,但如果 Cloudflare 部署了更复杂的挑战,例如 CAPTCHA,则需要更高级的解决方案。这就是 CapSolver 发挥作用的地方。

CapSolver 集成:增强 Puppeteer 以绕过 Cloudflare

CapSolver 是一种旨在自动解决 CAPTCHA 和其他类似挑战的服务,在处理 Cloudflare 的高级防护措施时尤其有用。通过将 CapSolver 集成到你的 Puppeteer 脚本中,可以自动解决这些挑战,使你的脚本能够持续运行而不会中断。

以下是如何将 CapSolver 与 Puppeteer 集成:

javascript Copy
const puppeteer = require('puppeteer');
const axios = require('axios');

const clientKey = '你的客户端密钥在此处'; // 用你的 CapSolver 客户端密钥替换
const websiteURL = 'https://example.com'; // 用你的目标网站 URL 替换
const websiteKey = '你的网站密钥在此处'; // 用 CapSolver 提供的网站密钥替换

async function createTask() {
  const response = await axios.post('https://api.capsolver.com/createTask', {
    clientKey: clientKey,
    task: {
      type: "AntiTurnstileTaskProxyLess",
      websiteURL: websiteURL,
      websiteKey: websiteKey
    }
  }, {
javascript Copy
headers: {
      'Content-Type': 'application/json',
      'Pragma': 'no-cache'
    }
  });

  return response.data.taskId;
}

async function getTaskResult(taskId) {
  console.log(taskId);
  let response;

  while (true) {
    response = await axios.post('https://api.capsolver.com/getTaskResult', {
      clientKey: clientKey,
      taskId: taskId
    }, {
      headers: {
        'Content-Type': 'application/json'
      }
    });

    if (response.data.status === 'ready') {
      return response.data.solution;
    }

    console.log('Status not ready, checking again in 5 seconds...');
    await new Promise(resolve => setTimeout(resolve, 5000));
  }
}

(async () => {
  const taskId = await createTask();
  const result = await getTaskResult(taskId);
  console.log(result);
  let solution = result.token;

  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(websiteURL);
  await page.waitForSelector('input[name="cf-turnstile-response"]');
  await page.evaluate(solution => {
    document.querySelector('input[name="cf-turnstile-response"]').value = solution;
  }, solution);
  await page.screenshot({ path: 'example.png' });
})();

针对从事自动化和网页抓取任务的开发人员和数据工程师而言,绕过 Cloudflare 的安全措施可能是一项重大挑战。尽管 Puppeteer 提供了应对基本挑战所需的工具,但集成 CapSolver 能够让您无缝克服更复杂的障碍,例如 CAPTCHA。这种组合确保您的脚本能够顺利运行,即使是在受 Cloudflare 保护的网站上也是如此。

要开始使用 CapSolver 并提高自动化任务的效率,请确保使用我们的奖励代码 WEBS 以获得更多价值。有了合适的工具和策略,您可以绕过 Cloudflare 的防御并让您的项目保持正轨。

查看更多

May 07, 2026

用于网页自动化和验证码解决的最佳人工智能代理框架

比较2026年最佳AI代理框架在网页自动化、验证码解决、合规性和生产就绪代理工作流程中的表现。

Ethan Collins
Ethan Collins
May 07, 2026

最佳Java网络爬虫库用于可靠的数据提取

比较最佳的Java网络爬虫库,包括jsoup、Selenium、Playwright(用于Java)、HtmlUnit、Apache Nutch和API选项。

Ethan Collins
Ethan Collins

目录

May 06, 2026

如何通过Hermes Agent和CapSolver解决浏览器自动化中的CAPTCHA

学习如何使用Hermes Agent和CapSolver在AI浏览器自动化工作流程中解决CAPTCHA。本指南解释了如何集成CapSolver,以在无需编写复杂代码的情况下自动处理reCAPTCHA、hCaptcha和其他现代验证码系统。

Ethan Collins
Ethan Collins
May 06, 2026

如何在无需浏览器的情况下解决AWS WAF挑战:技术指南

学习如何在无需浏览器的情况下解决 AWS WAF 挑战和验证码。使用 CapSolver 的 API 生成令牌并绕过 405 状态码。

Ethan Collins
Ethan Collins