CAPSOLVER
博客
如何更改User Agent以解决Cloudflare问题

如何更改用户代理以绕过Cloudflare

Logo of CapSolver

Adélia Cruz

Neural Network Developer

14-Jan-2025

为什么 User Agent 对绕过 Cloudflare 重要

什么是 User Agent?

User Agent (UA) 是浏览器或客户端发送给服务器的一串字符串,用于标识自身。它通常包含浏览器名称、版本、操作系统和设备类型等详细信息。例如:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Cloudflare 分析此字符串以检测机器人。如果你的 UA 与已知的自动化工具(例如,Python-RequestsHeadlessChrome)匹配,你将触发 Cloudflare 的反机器人系统。


分步指南:更改你的 User Agent

1. 识别目标预期的 User Agent

在自定义之前,检查网站的真实用户正在使用哪些 User Agent。像 WhatIsMyBrowser 这样的工具或浏览器开发者工具(Network 标签 > Headers)可以提供帮助。例如,如果该网站在 Chrome 用户中很流行,则模仿他们的 UA。

2. 在你的代码中设置自定义 User Agent

以下是如何在流行的编程语言中修改 UA:

Python (Requests 库)

python 复制代码
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}

response = requests.get('https://example.com', headers=headers)

JavaScript (Node.js 使用 Axios)

javascript 复制代码
const axios = require('axios');

axios.get('https://example.com', {
  headers: {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
  }
});

使用无头浏览器 (Puppeteer)

javascript 复制代码
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36');
  await page.goto('https://example.com');
})();

3. 轮换 User Agent

重复使用相同的 UA 仍然可能被标记。从预定义列表中轮换 UA 以模仿不同的用户。像 Fake UserAgent 这样的工具简化了此过程:

python 复制代码
from fake_useragent import UserAgent
import requests

ua = UserAgent()
headers = {'User-Agent': ua.random}
response = requests.get('https://example.com', headers=headers)

常见错误

  1. 使用过时的 User Agent
    Cloudflare 保持着可疑 UA 的列表。避免与旧版浏览器相关的字符串(例如,2017 年的 Chrome/58.0.3029.110)。

  2. 忽略无头浏览器指纹
    即使使用有效的 UA,无头浏览器也会泄露自动化信号(例如,缺少像 navigator.plugins 这样的插件)。使用隐身插件,例如 puppeteer-extra-plugin-stealth

  3. 忘记 IP 轮换
    将 UA 轮换与住宅代理结合使用以避免基于 IP 的封锁。静态或粘性代理最适合保持会话一致性。

  4. 结合 TLS 指纹
    Cloudflare 检查 TLS 握手模式。像 curl_cffi (Python) 或 tls-client (JavaScript) 这样的库可以模仿真实的浏览器 TLS 指纹,从而降低检测风险。


最后的想法

更改你的 User Agent 是一种简单而有效的方法来绕过 Cloudflare,但它并非万无一失。将其与 IP 轮换、TLS 指纹和反检测工具结合使用,以获得可靠的结果。

祝您抓取愉快!🤖

合规声明: 本博客提供的信息仅供参考。CapSolver 致力于遵守所有适用的法律和法规。严禁以非法、欺诈或滥用活动使用 CapSolver 网络,任何此类行为将受到调查。我们的验证码解决方案在确保 100% 合规的同时,帮助解决公共数据爬取过程中的验证码难题。我们鼓励负责任地使用我们的服务。如需更多信息,请访问我们的服务条款和隐私政策。

更多

AI赋能的图像识别:基础知识及解决方案
AI赋能的图像识别:基础知识及解决方案

告别图片验证码难题——CapSolver视觉引擎快速、智能、轻松解决!

Logo of CapSolver

Ethan Collins

25-Apr-2025

最佳网页抓取用户代理及使用方法
最佳网页抓取用户代理及使用方法

网络爬虫最佳用户代理指南及其有效使用技巧,避免被检测。探讨用户代理的重要性、类型以及如何在无缝且不被检测的情况下实现它们以进行网络爬取。

Logo of CapSolver

Ethan Collins

07-Mar-2025

如何解决Cloudflare JS挑战以进行网页抓取和自动化
如何解决Cloudflare JS挑战以进行网页抓取和自动化

学习如何解决Cloudflare的JavaScript挑战,实现无缝网页抓取和自动化。探索有效的策略,包括使用无头浏览器、代理轮换以及利用CapSolver的高级验证码解决能力。

Logo of CapSolver

Ethan Collins

05-Mar-2025

什么是验证码?验证码可以追踪你吗?
什么是验证码?验证码可以追踪你吗?

你是否好奇验证码是什么以及为什么网站会让你解答它们?学习验证码的工作原理、它们是否会追踪你以及它们对网络安全为何至关重要。此外,了解如何使用CapSolver轻松绕过验证码以进行网页抓取和自动化。

Logo of CapSolver

Ethan Collins

05-Mar-2025

Cloudflare TLS指纹识别:它是什麽以及如何解决
Cloudflare TLS指纹识别:它是啥以及如何解决

了解Cloudflare如何使用TLS指纹识别技术进行安全防护,以及它如何检测和阻止机器人,并探索针对网页抓取和自动化浏览任务的有效解决方法。

Logo of CapSolver

Ethan Collins

28-Feb-2025

为什么我总是被要求验证我不是机器人?
为什么我总是被要求验证我不是机器人?

了解谷歌为何提示您验证自己不是机器人的原因,并探索使用CapSolver API高效解决验证码难题的解决方案。

Logo of CapSolver

Ethan Collins

27-Feb-2025