wordpress黑帽插件,柳州关键词优化网站,在线域名解析ip地址,电脑小程序怎么制作TL;DR#xff1a;使用 Camoufox 来规避浏览器指纹识别#xff0c;使用 CapSolver 来自动解决 CAPTCHA#xff0c;例如 Cloudflare Turnstile 和 reCAPTCHA v2/v3。它们结合使用可以实现稳定、类人的网页自动化#xff0c;可扩展性强#xff0c;检测率低#xff0c;成功率…TL;DR使用 Camoufox 来规避浏览器指纹识别使用 CapSolver 来自动解决 CAPTCHA例如 Cloudflare Turnstile 和 reCAPTCHA v2/v3。它们结合使用可以实现稳定、类人的网页自动化可扩展性强检测率低成功率高。引言网页自动化已成为数据收集、测试和各种业务操作的关键。然而现代网站部署了复杂的反机器人措施和 CAPTCHA这可能会阻止即使是最精心设计的自动化脚本。Camoufox和CapSolver的组合为解决这一挑战提供了强大的解决方案Camoufox一个基于 Firefox 的开源反检测浏览器通过高级指纹欺骗来规避机器人检测CapSolver一个 AI 驱动的 CAPTCHA 解决服务可以处理 Cloudflare Turnstile、reCAPTCHA 等这些工具结合使用可以实现无缝的网页自动化绕过指纹检测和 CAPTCHA 挑战。集成目标本指南将帮助您实现三个核心目标绕过机器人检测- 使用 Camoufox 的指纹注入功能使其看起来像一个合法的浏览器自动解决 CAPTCHA- 集成 CapSolver 的 API无需人工干预即可处理 CAPTCHA 挑战保持类人行为- 结合人性化的鼠标移动和智能 CAPTCHA 解决什么是 CamoufoxCamoufox 是一个隐蔽且极简的 Firefox 定制版本专为网页抓取和自动化设计。与其他依赖 JavaScript 注入可能被检测到的反检测解决方案不同Camoufox 在浏览器本身的C 级别实现指纹欺骗。关键功能指纹注入- 在原生级别欺骗导航器属性、屏幕尺寸、WebGL、WebRTC、字体等类人鼠标移动- 内置的光标人性化算法用于真实交互BrowserForge 集成- 生成模仿真实设备分布的指纹GeoIP 支持- 根据代理 IP 自动计算时区、地区和地理位置Firefox 插件支持- 可加载自定义扩展包括广告拦截器安装# 安装 Python 包pipinstall-U camoufox[geoip]# 下载 Camoufox 浏览器camoufox fetch基础用法fromcamoufox.sync_apiimportCamoufoxwithCamoufox(humanizeTrue)asbrowser:pagebrowser.new_page()page.goto(https://example.com)什么是 CapSolverCapSolver 是一个 AI 驱动的自动 CAPTCHA 解决服务支持多种 CAPTCHA 类型。它提供了一个简单的 API允许您提交 CAPTCHA 挑战并在几秒内收到解决方案。支持的 CAPTCHA 类型Cloudflare Turnstile- 最常见的现代反机器人挑战reCAPTCHA v2- 图像版和隐形版reCAPTCHA v3- 基于评分的验证AWS WAF- 亚马逊网络服务的 CAPTCHA以及更多…快速入门 CapSolver在 capsolver.com 注册向账户充值从仪表板获取 API 密钥额外奖励注册时使用代码CAMOUFOX可获得额外积分集成前的挑战在将 Camoufox 与 CapSolver 集成之前网页自动化面临以下痛点挑战影响浏览器指纹检测脚本在到达内容前被阻止CAPTCHA 挑战需要手动解决破坏自动化IP 声誉系统代理IP迅速被标记并封禁行为分析检测到非人类模式Camoufox CapSolver 集成可在单一流程中解决所有这些挑战。集成方法方法 1API 集成推荐API 集成方法为您提供完整的 CAPTCHA 解决流程控制并支持任何 CAPTCHA 类型。设置要求pipinstallcamoufox[geoip]httpx核心集成模式importasyncioimporthttpxfromcamoufox.async_apiimportAsyncCamoufox CAPSOLVER_API_KEYYOUR_API_KEYCAPSOLVER_APIhttps://api.capsolver.comasyncdefcreate_task(task_payload:dict)-str:创建 CAPTCHA 解决任务并返回任务 ID。asyncwithhttpx.AsyncClient()asclient:responseawaitclient.post(f{CAPSOLVER_API}/createTask,json{clientKey:CAPSOLVER_API_KEY,task:task_payload})resultresponse.json()ifresult.get(errorId)!0:raiseException(fCapSolver 错误:{result.get(errorDescription)})returnresult[taskId]asyncdefget_task_result(task_id:str,max_attempts:int120)-dict:轮询任务结果直到解决或超时。asyncwithhttpx.AsyncClient()asclient:for_inrange(max_attempts):responseawaitclient.post(f{CAPSOLVER_API}/getTaskResult,json{clientKey:CAPSOLVER_API_KEY,taskId:task_id})resultresponse.json()ifresult.get(status)ready:returnresult[solution]elifresult.get(status)failed:raiseException(f任务失败:{result.get(errorDescription)})awaitasyncio.sleep(1)raiseTimeoutError(CAPTCHA 解决超时)asyncdefsolve_captcha(task_payload:dict)-dict:完成 CAPTCHA 解决流程。task_idawaitcreate_task(task_payload)returnawaitget_task_result(task_id)方法 2浏览器扩展您也可以使用 CapSolver 浏览器扩展与 Camoufox 配合使用以实现更自动化的操作。安装步骤从 capsolver.com/en/extension 下载 CapSolver 扩展解压扩展文件将其加载到 Camoufox 中fromcamoufox.sync_apiimportCamoufoxwithCamoufox(addons[/path/to/capsolver-extension],headlessFalse# 扩展需要非无头模式)asbrowser:pagebrowser.new_page()# 扩展会自动检测并解决 CAPTCHA代码示例示例 1解决 Cloudflare TurnstileCloudflare Turnstile 是最常见的 CAPTCHA 挑战之一。以下是解决方法importasynciofromcamoufox.async_apiimportAsyncCamoufox CAPSOLVER_API_KEYYOUR_API_KEYCAPSOLVER_APIhttps://api.capsolver.comasyncdefsolve_turnstile(site_key:str,page_url:str)-str:解决 Cloudflare Turnstile 并返回令牌。importhttpxasyncwithhttpx.AsyncClient()asclient:# 创建任务responseawaitclient.post(f{CAPSOLVER_API}/createTask,json{clientKey:CAPSOLVER_API_KEY,task:{type:AntiTurnstileTaskProxyLess,websiteURL:page_url,websiteKey:site_key,}})task_idresponse.json()[taskId]# 轮询结果whileTrue:resultawaitclient.post(f{CAPSOLVER_API}/getTaskResult,json{clientKey:CAPSOLVER_API_KEY,taskId:task_id})dataresult.json()ifdata.get(status)ready:returndata[solution][token]awaitasyncio.sleep(1)asyncdefmain():target_urlhttps://example.com/protected-pageturnstile_site_key0x4XXXXXXXXXXXXXXXXX# 在页面源代码中查找asyncwithAsyncCamoufox(humanizeTrue,headlessFalse,oswindows)asbrowser:pageawaitbrowser.new_page()awaitpage.goto(target_url)# 等待 Turnstile 加载awaitpage.wait_for_selector(input[namecf-turnstile-response],timeout10000)# 解决 CAPTCHAtokenawaitsolve_turnstile(turnstile_site_key,target_url)print(f获取到 Turnstile 令牌:{token[:50]}...)# 注入令牌awaitpage.evaluate(f document.querySelector(input[namecf-turnstile-response]).value {token}; // 如果存在隐藏回调则设置 const callback document.querySelector([data-callback]); if (callback) {{ const callbackName callback.getAttribute(data-callback); if (window[callbackName]) {{ window[callbackName]({token}); }} }} )# 提交表单awaitpage.click(button[typesubmit])awaitpage.wait_for_load_state(networkidle)print(成功绕过 Turnstile)if__name____main__:asyncio.run(main())示例 2解决 reCAPTCHA v2importasynciofromcamoufox.async_apiimportAsyncCamoufox CAPSOLVER_API_KEYYOUR_API_KEYCAPSOLVER_APIhttps://api.capsolver.comasyncdefsolve_recaptcha_v2(site_key:str,page_url:str)-str:解决 reCAPTCHA v2 并返回令牌。importhttpxasyncwithhttpx.AsyncClient()asclient:# 创建任务responseawaitclient.post(f{CAPSOLVER_API}/createTask,json{clientKey:CAPSOLVER_API_KEY,task:{type:ReCaptchaV2TaskProxyLess,websiteURL:page_url,websiteKey:site_key,}})resultresponse.json()ifresult.get(errorId)!0:raiseException(f错误:{result.get(errorDescription)})task_idresult[taskId]# 轮询结果whileTrue:resultawaitclient.post(f{CAPSOLVER_API}/getTaskResult,json{clientKey:CAPSOLVER_API_KEY,taskId:task_id})dataresult.json()ifdata.get(status)ready:returndata[solution][gRecaptchaResponse]elifdata.get(status)failed:raiseException(f失败:{data.get(errorDescription)})awaitasyncio.sleep(2)asyncdefmain():target_urlhttps://example.com/loginrecaptcha_site_key6LcXXXXXXXXXXXXXXXXXXXXXXXXX# 在页面源代码中查找asyncwithAsyncCamoufox(humanizeTrue,headlessFalse,os[windows,macos]# 随机选择操作系统)asbrowser:pageawaitbrowser.new_page()awaitpage.goto(target_url)# 用类人延迟填写表单字段awaitpage.fill(input[nameusername],userexample.com)awaitasyncio.sleep(0.5)# 类人暂停awaitpage.fill(input[namepassword],password123)# 解决 CAPTCHAprint(正在解决 reCAPTCHA v2...)tokenawaitsolve_recaptcha_v2(recaptcha_site_key,target_url)print(f获取到令牌:{token[:50]}...)# 将令牌注入到 reCAPTCHA 响应字段中awaitpage.evaluate(f document.getElementById(g-recaptcha-response).innerHTML {token}; document.getElementById(g-recaptcha-response).style.display block; )# 提交表单awaitpage.click(button[typesubmit])awaitpage.wait_for_load_state(networkidle)print(登录成功)if__name____main__:asyncio.run(main())示例 3解决 reCAPTCHA v3reCAPTCHA v3 是基于评分的不需要用户交互。您需要指定 action 参数。importasynciofromcamoufox.async_apiimportAsyncCamoufox CAPSOLVER_API_KEYYOUR_API_KEYCAPSOLVER_APIhttps://api.capsolver.comasyncdefsolve_recaptcha_v3(site_key:str,page_url:str,action:strverify,min_score:float0.7)-str:使用指定的 action 和最低评分解决 reCAPTCHA v3。importhttpxasyncwithhttpx.AsyncClient()asclient:responseawaitclient.post(f{CAPSOLVER_API}/createTask,json{clientKey:CAPSOLVER_API_KEY,task:{type:ReCaptchaV3TaskProxyLess,websiteURL:page_url,websiteKey:site_key,pageAction:action,minScore:min_score}})resultresponse.json()ifresult.get(errorId)!0:raiseException(f错误:{result.get(errorDescription)})task_idresult[taskId]whileTrue:resultawaitclient.post(f{CAPSOLVER_API}/getTaskResult,json{clientKey:CAPSOLVER_API_KEY,taskId:task_id})dataresult.json()ifdata.get(status)ready:returndata[solution][gRecaptchaResponse]elifdata.get(status)failed:raiseException(f失败:{data.get(errorDescription)})awaitasyncio.sleep(1)asyncdefmain():target_urlhttps://example.com/searchrecaptcha_v3_key6LcXXXXXXXXXXXXXXXXXXXXXXXXXasyncwithAsyncCamoufox(humanize2.0,# 最大 2 秒类人移动headlessTrue,# 可以无头运行geoipTrue,# 从代理 IP 自动检测地理位置)asbrowser:pageawaitbrowser.new_page()awaitpage.goto(target_url)# 使用 search 动作解决 reCAPTCHA v3print(正在解决 reCAPTCHA v3...)tokenawaitsolve_recaptcha_v3(recaptcha_v3_key,target_url,actionsearch,min_score0.9# 请求高评分)# 通过站点回调提交令牌awaitpage.evaluate(f//通过站点的回调提交令牌grecaptcha.execute(‘{recaptcha_v3_key}’, {{action: ‘search’}}).then(function(originalToken) {{// 用我们解决的令牌替换submitSearch(‘{token}’);}});‘’)print(已绕过 reCAPTCHA v3!)ifname “main”:asyncio.run(main())--- ## 最佳实践 ### 1. 使用 GeoIP 的代理轮换 使用 Camoufox 的 GeoIP 功能自动将指纹与您的代理位置匹配 python async with AsyncCamoufox( geoipTrue, # 从代理 IP 自动检测 proxy{ server: http://proxy.example.com:8080, username: user, password: pass } ) as browser: # 指纹将匹配代理的地理位置 pass2. 指纹一致性在会话内保持指纹一致但会话间进行轮换frombrowserforge.fingerprintsimportScreen# 限制为常见的屏幕尺寸screenScreen(min_width1280,max_width1920,min_height720,max_height1080)asyncwithAsyncCamoufox(oswindows,screenscreen,)asbrowser:pass3. 速率限制通过添加延迟避免触发速率限制importrandomasyncdefhuman_delay():模拟人类行为的随机延迟。awaitasyncio.sleep(random.uniform(1.0,3.0))# 在操作之间使用awaitpage.click(button)awaithuman_delay()awaitpage.fill(input,text)4. 错误处理始终为 CAPTCHA 解决实现适当的错误处理asyncdefsolve_with_retry(task_payload:dict,max_retries:int3)-dict:带重试逻辑的 CAPTCHA 解决函数。forattemptinrange(max_retries):try:returnawaitsolve_captcha(task_payload)exceptTimeoutError:ifattemptmax_retries-1:print(f超时正在重试... (第{attempt1}次/{max_retries}次))awaitasyncio.sleep(5)else:raiseexceptExceptionase:ifbalanceinstr(e).lower():raise# 不要重试余额错误ifattemptmax_retries-1:awaitasyncio.sleep(2)else:raise优惠立即开始准备好用 Camoufox 和 CapSolver 加速您的网络自动化了吗在 CapSolver 注册时使用代码CAMOUFOX以获得额外积分此专属优惠可让您立即开始进行 CAPTCHA 解决。结论Camoufox与CapSolver的集成创建了一个强大的网络自动化工具包Camoufox通过原生级别的指纹欺骗来处理机器人检测CapSolver通过人工智能驱动的 CAPTCHA 解决两者结合可实现看起来完全像人类的无缝自动化无论您是构建网络爬虫、自动化测试系统还是数据收集管道这种组合都能提供您所需的可靠性和隐蔽性。常见问题问哪些 CAPTCHA 类型与此集成效果最好答CapSolver 支持所有主要的 CAPTCHA 类型。Cloudflare Turnstile 和 reCAPTCHA v2/v3 的成功率最高。此集成可与 CapSolver 支持的任何 CAPTCHA 无缝配合。问可以使用无头模式吗答可以Camoufox 支持无头模式并保持其指纹欺骗功能。对于 reCAPTCHA v3 和基于令牌的 CAPTCHA无头模式可以完美运行。对于 v2 可见 CAPTCHA有头模式可能提供更好的结果。问如何找到 CAPTCHA 的站点密钥答在页面源代码中查找Turnstile:data-sitekey属性或cf-turnstile元素reCAPTCHA:g-recaptchadiv 上的data-sitekey属性问如果 CAPTCHA 解决失败怎么办答常见解决方案验证您的 API 密钥和余额确保站点密钥正确检查页面 URL 是否与 CAPTCHA 出现的位置匹配对于 v3尝试调整 action 参数和最低分数实现带延迟的重试逻辑问Camoufox 是否与 Selenium 兼容答Camoufox 是基于 Playwright 构建的而不是 Selenium。但是您可以使用相同的 CapSolver API 集成模式与任何浏览器自动化框架配合使用。