欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > 极验证Geetest 通过python代理 透传

极验证Geetest 通过python代理 透传

2025/5/17 3:23:21 来源:https://blog.csdn.net/bigcarp/article/details/147975876  浏览:    关键词:极验证Geetest 通过python代理 透传

看了几个破解Geetest 四代滑块的视频和文章,有点望而生畏,github上也有收集极验四代滑块所有图片后经过ai训练做的破解代码,但作者说成功率只有90%。

于是考虑通过python透传的方法,j就是对自动化脚本套个【网页界面】的壳,把滑块验证放在壳上(网页),验证过程还是由真人去完成,这就需要让python端作为代理,分别转发/load 和 /verify的请求和响应了。

浏览器前端 (Web SDK)
      ↓   (1) /load:   GET 请求 / JSONP响应
      ↓   (3) /verify     GET 请求 / JSONP响应
Python 代理服务器 (Flask/Django)
      ↓   (2) 转换成Androdi SDK格式,模拟 Android SDK → 发真实 /load
      ↓   (4) 转换成Androdi SDK格式,模拟 Android SDK → 发真实 /verify
GeeTest 服务器

如果都是web sdk的话,就不需要转换格式,直接转发即可。

django_geetest_proxy/
├── manage.py
├── project/                  # Django 项目目录
│   ├── settings.py
│   ├── urls.py
└── geetest_app/              # 核心应用├── views.py├── static/               # 静态文件目录│   └── js/│       └── gt4.js        # 下载 GeeTest v4 SDK 脚本放这里└── templates/└── index.html
# views.pyimport re
import requests
from django.http import HttpResponse
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt# 渲染首页
def index(request):CAPTCHA_ID = 'xxxxxxxxxxxxxxxxxx'context = { 'captcha_id': CAPTCHA_ID,}return render(request, 'index.html', context)# 代理 /load
def geetest_load(request):url = 'https://gcaptcha4.geetest.com/load'params = request.GET.dict()headers = {# 直接复制抓包的headers}resp = requests.get(url, params=params, headers=headers, verify=False)text = resp.textreturn HttpResponse(text, content_type="text/javascript")    #JSONP 必须content_type="text/javascript"# 代理 /verify
@csrf_exempt
def geetest_verify(request):url = 'https://gcaptcha4.geetest.com/verify'params = request.GET.dict()headers = {# 直接复制抓包的headers}resp = requests.get(url, params=params, headers=headers, verify=False)text = resp.textreturn HttpResponse(text, content_type="text/javascript")

前端:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>GeeTest Android-Proxy Demo</title><!-- 引入极验 Web SDK(v4) -->{% load static %}<script src="{% static 'js/gt4.js' %}"></script>
</head>
<body><button id="geetest-btn">点击验证 (Android 代理)</button><div id="captcha-container"></div><script>const CAPTCHA_ID = '{{ captcha_id }}';document.getElementById('geetest-btn').addEventListener('click', () => {initGeetest4({captchaId: CAPTCHA_ID,product: 'popup',protocol: window.location.protocol + '//',language: 'en',apiServers: [window.location.host]}, function (captchaObj) {captchaObj.appendTo('#captcha-container');captchaObj.onReady(function () {// 验证器加载完成});captchaObj.onSuccess(function () {const result = captchaObj.getValidate();alert('验证成功: ' + JSON.stringify(result));});});});</script>
</body>
</html>
urlpatterns = [path('', views.index, name='index'),path('load', views.geetest_load, name='geetest_load'),path('verify', views.geetest_verify, name='geetest_verify'),
]if settings.DEBUG:# 如果gt4.js放在本地的话,需加上这句urlpatterns += static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS[0])

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词