You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python+Selenium解决top.gg无回调自动弹出HCaptcha问题

解决top.gg HCaptcha无提交按钮、回调函数找不到的问题

核心解决思路

1. 直接定位原生HCaptcha回调函数

  • 打开浏览器控制台,先找到HCaptcha的容器元素(通常是带h-captcha类的div),执行以下脚本获取回调函数名:
    document.querySelector('.h-captcha').getAttribute('data-callback')
    
  • 拿到函数名后,直接调用该函数并传入2captcha获取的token,比如:
    window['回调函数名称']('你的2captcha_token')
    
  • 注意:如果HCaptcha在iframe内,需先用Selenium切换到对应iframe:
    # 定位HCaptcha的iframe
    captcha_iframe = driver.find_element(By.CSS_SELECTOR, "iframe[src*='hcaptcha.com']")
    driver.switch_to.frame(captcha_iframe)
    # 执行上述回调函数脚本
    driver.execute_script("window['回调函数名称']('你的2captcha_token')")
    # 切回主文档
    driver.switch_to.default_content()
    

2. 修复anycaptcha脚本的错误

  • 报错onclick is not a function是因为onclick是事件属性,不是可调用方法,正确触发点击的方式:
    document.getElementById('anycaptchaSolveButton').click();
    
  • 若需要传入token,先将token填入插件对应的输入框再触发点击:
    // 先找到插件的token输入框(需自行定位实际id)
    document.getElementById('anycaptchaTokenInput').value = 'TOKEN_FROM_STEP_4';
    document.getElementById('anycaptchaSolveButton').click();
    

3. 模拟HCaptcha原生验证流程

  • 控制台测试window.hcaptcha是否存在,若存在,尝试以下操作:
    // 设置验证token
    window.hcaptcha.setResponse('你的2captcha_token');
    // 提交验证
    window.hcaptcha.submit();
    

4. Selenium操作关键注意点

  • 必须在HCaptcha弹窗未关闭的状态下执行验证脚本,避免触发页面重置
  • 切换iframe后务必切回主文档,防止后续元素定位失败
  • 直接用driver.execute_script()注入脚本,无需依赖浏览器插件

内容的提问来源于stack exchange,提问作者PlopJukt jukt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:55:20