用木偶和python解决hcaptcha
#初学者 #教程 #python #自动化

Sign up to my newsletter for more tutorials!.

免责声明:此信息仅用于教育目的。

验证码是什么意思?

CAPTCHA机制已成为Web安全性不可或缺的一部分,以确保人类与网站之间的相互作用仍然是真实的。但是,作为网络开发人员和自动化爱好者,我们经常在试图以编程方式绕过验证码时遇到挑战。在这篇博客文章中,我们将使用Puppeteer和Python与CapSolver结合使用PuppeTeer和Python,这是一种有效的解决方案。

什么是hcaptcha?

在深入了解实施细节之前,让我们简要讨论HCAPTCHA。 HCAPTCHA是作为Google Recaptcha的替代方案而开发的,是一款流行的验证码服务,向用户提供了各种挑战以验证其人性。它涉及选择特定图像,解决难题或回答问题之类的任务。 HCAPTCHA在维护用户隐私的同时提供了增强的安全性,使其成为许多网站的首选选择。

什么是帽子?

CapSolver为不同类型的验证码提供自动解决方案,简化了开发人员和自动化爱好者的过程。

  • recaptcha V2/V3/Enterprise:Capsolver可以处理Google recaptcha的各种版本,包括V2,V3和Recaptcha Enterprise。这些验证码广泛用于验证用户交互并检测网站上的bot。
  • funcaptcha:funcaptcha是一种验证码,它向用户提供了互动和游戏的挑战以证明其人类身份。 Capsolver可以有效地解决Funcaptcha挑战。
  • datadome:DataDome是一种反机器人解决方案,它利用复杂的算法来保护网站免受恶意机器人的侵害。 Capsolver可以帮助绕过DataDome Captchas,确保平滑自动化。
  • 反机器人解决方案:Capsolver支持解决通过自定义反机器人解决方案实施的验证验证。这些验证码专门设计用于检测和阻止自动机器人活动。
  • HCAPTCHA普通/企业:HCAPTCHA是Google Recaptcha的流行替代品,并以增强的安全性和用户隐私功能而闻名。 Capsolver可以处理HCAPTCHA正常和HCAPTCHA企业挑战。
  • geetest V3:Geetest V3是一种验证码,它为用户提供了交互式难题或挑战以验证其人类身份。 Capsolver可以有效地解决Geetest V3 Captchas。
  • ImageTotext:ImageTotext Captchas涉及识别和转录图像中的文本。 Capsolver具有准确破译这些基于图像的验证验的能力。

请注意,虽然CapSolver在撰写本文时支持这些验证码方法,但建议您咨询Capsolver的官方文档或与其支持团队联系以获取有关支持的验证码的最新和全面信息。

注册胶囊并获取API键

开始使用sign up Capsolver在其网站上免费帐户。注册后,您将收到一个可用于访问Capsolver的API的API密钥。

使用Pyppeteer Python与Capsolver:逐步指南

步骤1:先决条件

在进行实施之前,请确保您有以下先决条件:

安装pyppeteercapsolver-api python软件包:

python3 -m pip install pyppeteer capsolver-api

步骤2:导入所需库

一旦有了先决条件,请导入所需的库:

import asyncio
from pyppeteer import launch
from capsolver_api import HCaptchaTask

步骤3:启动浏览器

接下来,使用Puppeteer启动浏览器:

browser = await launch(headless=False)

步骤4:创建一个新页面

启动浏览器后,创建一个新页面:

page = await browser.newPage()

步骤5:导航到网站

接下来,导航到提出HCAPTCHA挑战的网站:

url = 'https://accounts.hcaptcha.com/demo'
await page.goto(url)

步骤6:查找网站密钥

加载页面后,找到网站密钥:

element = await page.querySelector('#hcaptcha-demo')
website_key = await page.evaluate('(element) => element.getAttribute("data-sitekey")', element)

步骤7:解决验证码

加载页面后,使用Capsolver求解验证码:

capsolver = HCaptchaTask('your_capsolver_api_key')

task_id = capsolver.create_task(task_type='HCaptchaTaskProxyLess',
                                website_url=url,
                                website_key=website_key
                                )

captcha_key = capsolver.get_solution(task_id)

步骤8:提交验证码

解决验证码后,提交验证码:

await page.type('textarea[name="h-captcha-response"]', captcha_key)
await page.click('input[type="submit"]')

完整代码

import asyncio
from pyppeteer import launch
from capsolver_api import HCaptchaTask


async def main():
    url = 'https://accounts.hcaptcha.com/demo'
    browser = await launch(headless=False)
    page = await browser.newPage()
    await page.goto(url)
    element = await page.querySelector('#hcaptcha-demo')
    website_key = await page.evaluate('(element) => element.getAttribute("data-sitekey")', element)

    capsolver = HCaptchaTask('your_capsolver_api_key')

    task_id = capsolver.create_task(task_type='HCaptchaTaskProxyLess',
                                    website_url=url,
                                    website_key=website_key
                                    )

    captcha_key = capsolver.get_solution(task_id)

    await page.waitForSelector('iframe')
    await page.type('textarea[name="h-captcha-response"]', captcha_key)
    await page.click('input[type="submit"]')
    await page.waitFor(2000)
    await page.screenshot({'path': 'solve.png'}) # screenshot of the solved captcha

asyncio.get_event_loop().run_until_complete(main())

结论

在这篇博客文章中,我们探索了如何使用puppeteer和python使用CapSolver解决HCAPTCHA挑战。 Capsolver提供了一种简单有效的解决方案,用于解决不同类型的验证码,包括HCAPTCHA,FUNCAPTCHA,RECAPTCHA等。这是一个强大的工具,可以帮助开发人员和自动化爱好者绕过验证码并自动化其工作流程。