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

Selenium爬取网站遇reCAPTCHA问题:已获API数据却无法触发验证

reCAPTCHA无提交按钮时的验证触发方案

以下是针对无提交按钮的reCAPTCHA验证页面的具体解决步骤:

  • 触发reCAPTCHA官方回调函数
    多数无提交按钮的页面会依赖reCAPTCHA的回调机制触发内容显示。首先找到页面中reCAPTCHA组件的data-callback属性值,这就是验证完成后要调用的函数名。直接在控制台或爬虫代码中调用该函数并传入你的验证token即可:

    // 获取回调函数
    const captchaElement = document.querySelector('.g-recaptcha');
    const callbackName = captchaElement.getAttribute('data-callback');
    const callbackFn = window[callbackName];
    // 传入token触发回调
    callbackFn('你的验证token');
    
  • 手动注入token并触发页面校验
    有些页面会通过读取隐藏输入框的token值来判断验证状态。先找到名为g-recaptcha-response的输入框,注入你的token,再触发页面的校验逻辑:

    // 注入token到对应输入框
    document.querySelector('input[name="g-recaptcha-response"]').value = '你的验证token';
    // 触发页面的校验事件,比如input或change事件
    document.querySelector('input[name="g-recaptcha-response"]').dispatchEvent(new Event('change'));
    
  • 直接修改DOM显示隐藏内容
    如果页面仅通过DOM类或样式控制内容显示,可以直接操作DOM显示目标内容,同时同步存储token到页面依赖的存储位置(如localStorage或cookie):

    // 显示隐藏内容
    document.getElementById('target-hidden-content').classList.remove('hidden');
    // 同步存储token(根据页面实际存储字段调整)
    localStorage.setItem('captcha_valid_token', '你的验证token');
    
  • 调用页面全局校验函数
    部分页面会定义全局的验证状态检查函数,比如checkCaptchaValidity(),直接调用该函数即可让页面重新检测验证状态:

    // 调用全局校验函数
    if (window.checkCaptchaValidity) {
      window.checkCaptchaValidity();
    }
    

内容的提问来源于stack exchange,提问作者Asha Karthikeyan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 14:12:04