本文章只是以思路形式展示
就不多废话直接开搞吧
首先了解hcaptcha必要条件一:
https://hcaptcha.com/1/api.js?render=explicit&οnlοad=hcaptchaOnLoad
正则表达式匹配version,为什么要这个呢???因为post接口拿参数啊
findall(r'v1\/([A-Za-z0-9]+)\/static', js)[1]
ok然后请求第一个接口:checksiteconfig
api:https://api.hcaptcha.com/checksiteconfig
这时候我们拿到req,然后呢就是最最关键时候了。是不是有一个hsw.js
这时候我们只需要把hsw.js复制出来直接在浏览器注入
就会看见有返回的一个值,没错这就是我们要的
拿到加密之后我们就要post请求https://api.hcaptcha.com/getcaptcha/{sitekey}
然后问题又来了,
我们提交是不是这样乱码的啊,如果你细心的去断点调试就会发现其实这里的参数
data={
"v":re.findall(r'v1\/([A-Za-z0-9]+)\/static', js)[1],
"sitekey":sitekey,
"host":"",
'hl': 'nl',
'motionData': "",
'pdc': {"s": round(datetime.now().timestamp() * 1000), "n":0, "p":0, "gcs":10},
'n': hsw(siteconfig['c']['req']),
'c': siteconfig['c'],
'pst': False
}
motionData这个
自己去断点hacptcha.html调试获取,也是很简单的。
最终请求好返回携带有一个
目前hacptcha可以并发多次这里就不展示了。有兴趣可以
qq沟通群:679666897