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

© 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)
  • 术语表
  • 系统状态

法律声明

  • 服务条款
  • 隐私政策
  • 退款政策
  • 请勿出售我的信息
博客/Cloudflare/使用 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 的防御并让您的项目保持正轨。

查看更多

CloudflareMar 26, 2026

解决Cloudflare错误1005:网页抓取指南与解决方案

学习修复Cloudflare错误1005访问被拒绝的网络爬虫问题。发现解决方案如住宅代理、浏览器指纹识别和CapSolver验证码解决方法。优化您的数据提取。

Nikolai Smirnov
Nikolai Smirnov
CloudflareMar 17, 2026

如何在AI工作流中使用Playwright隐身模式处理Cloudflare Turnstile

了解如何通过使用Playwright隐身技术以及CapSolver实现可靠的验证码解决,从而有效处理AI工作流中的Cloudflare Turnstile。学习实用的集成策略和最佳实践,以实现无缝自动化。

Nikolai Smirnov

目录

Nikolai Smirnov
CloudflareFeb 04, 2026

如何在网页爬取时解决Cloudflare防护

学习在网页爬取时如何绕过Cloudflare的防护措施。探索如IP轮换、TLS指纹识别和CapSolver等经过验证的方法,以应对挑战。

Aloísio Vítor
Aloísio Vítor
CloudflareJan 19, 2026

如何通过Cloudflare验证你是人类而不被困

卡在“验证你是人类”或“Cloudflare Challenge”?了解常见原因并发现自动化系统每次都能通过验证的技术解决方案。

Lucas Mitchell
Lucas Mitchell