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

Python环境下用Selenium+2captcha破解Geetest后,如何提交验证参数?

提交Geetest验证参数的实现方法(Python)

方法一:用Selenium直接模拟页面提交(推荐)

你已经通过Selenium打开了目标页面,直接在当前会话中操作更贴合网站的验证逻辑,避免会话不一致导致的提交失败。

操作步骤:

  • 找到页面中存储Geetest参数的隐藏表单字段(通常是input标签,name属性分别对应geetest_challenge、geetest_validate、geetest_seccode)
  • 用Selenium的execute_script给这些字段赋值(隐藏字段用send_keys可能无效,JS赋值更可靠)
  • 触发页面的提交动作(点击提交按钮或执行页面原生的提交JS函数)

代码示例:

from selenium import webdriver
from selenium.webdriver.common.by import By

# 假设已完成验证,拿到三个参数
geetest_challenge = "你的challenge值"
geetest_validate = "你的validate值"
geetest_seccode = "你的seccode值"

# 1. 填充Geetest参数到页面隐藏字段
driver.execute_script(f'document.querySelector("input[name=\'geetest_challenge\']").value = "{geetest_challenge}";')
driver.execute_script(f'document.querySelector("input[name=\'geetest_validate\']").value = "{geetest_validate}";')
driver.execute_script(f'document.querySelector("input[name=\'geetest_seccode\']").value = "{geetest_seccode}";')

# 2. 触发提交(二选一即可)
# 方式A:点击页面提交按钮(替换成实际的选择器)
submit_btn = driver.find_element(By.CSS_SELECTOR, "button[type='submit']")
submit_btn.click()

# 方式B:执行页面原生提交函数(如果网站用AJAX提交)
# driver.execute_script("submitVerification();")  # 替换为页面实际的提交函数名

方法二:用requests库单独提交(需同步会话)

如果不想依赖Selenium提交,可以用requests模拟,但必须同步Selenium的会话Cookie,确保验证状态一致。

操作步骤:

  • 从Selenium中提取当前会话的Cookie,转换为requests可识别的格式
  • 构造包含三个Geetest参数的请求数据(Form Data或JSON,取决于网站提交格式)
  • 发送POST请求到目标提交接口

代码示例:

import requests
from selenium import webdriver

# 已获取的Geetest参数
geetest_challenge = "你的challenge值"
geetest_validate = "你的validate值"
geetest_seccode = "你的seccode值"

# 1. 同步Selenium的Cookie到requests会话
session = requests.Session()
for cookie in driver.get_cookies():
    session.cookies.set(cookie['name'], cookie['value'])

# 2. 构造请求数据(需匹配网站实际提交格式,可通过F12开发者工具查看)
data = {
    "geetest_challenge": geetest_challenge,
    "geetest_validate": geetest_validate,
    "geetest_seccode": geetest_seccode,
    # 需额外添加页面其他必填字段,比如用户名、密码等
}

# 3. 发送提交请求(替换为实际的接口URL)
response = session.post("https://目标网站提交接口URL", data=data)

# 检查提交结果
print(response.status_code)
print(response.text)

关键注意事项:

  • 先通过浏览器F12开发者工具,手动完成一次验证提交,查看Network面板的请求详情:确认提交方式(Form/JSON)、请求URL、额外必填参数
  • 若用Selenium提交,尽量模拟真实用户流程(先填完其他表单内容,再填充验证参数,最后点击按钮),避免直接修改DOM被检测
  • 部分网站会对提交参数做额外校验(如时间戳、签名),需同步带上这些参数才能提交成功

内容的提问来源于stack exchange,提问作者duy dang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:40:31