如何优雅的破解HCaptcha验证码

HCaptcha如是说

HCaptcha是欧美国家著名的接收者服务项目商,其主要就机能是为中文网站提供更多接收者服务项目,防止中文网站被蓄意食腐恣意banlist重要信息。较之于HCaptcha,我们可能将更为熟识Google reCaptcha(Google提供更多的接收者服务项目),但即使这类其原因,亚洲地区是难以采用Google reCaptcha的,因此HCaptcha便正式成为绝大多数国际级中文网站更佳的两个优先选择。

责任编辑会如是说一类典雅的方式来冲破HCaptcha接收者,在如是说冲破方式前,先单纯如是说与新体验呵呵HCaptch。

HCaptcha的可视化方式如下表右图,具体来说他们须要点选下拉,如下表右图图:

点他们点选下拉时,接收者林美珠透过其信用风险分析发动机推论现阶段采用者的信用风险,假如是低信用风险采用者,便能间接透过,但若,接收者flown出页面,让你提问页面中的难题,如下表右图图:

HCaptcha接收者会给你两个难题,比如说左图的难题是【请点选两张包涵大巴的相片】,他们须要从上面的七张图中优先选择出所含大巴的相片,假如七张相片中,没大巴,则点选【埃唐佩县】按键,假如有,则将大部份暗含大巴的相片都优先选择上,埃唐佩县按键会变为【检查和】按键,如下表右图图:

透过校正后,便会再次出现如下表右图结论:

新体验HCaptcha

他们能透过https://democaptcha.com/demo-form-eng/hcaptcha.html中文网站来新体验HCaptcha,为的是防止历史经验的负面影响,提议采用Chrome的科婷商业模式来出访该中文网站,如下表右图图右图:

点选图中的HCaptcha,便能新体验HCaptcha接收者的完整流程了。

至此,HCaptcha的大体情况他们已经熟识了,那么他们要怎么冲破该接收者呢?当然是采用机器学习相关的技术啦,上面他们如是说一款单纯好用的平台。

解决方案

对于HCaptcha接收者,他们能采用YesCaptcha服务项目来补齐,该服务项目采用起来非常单纯,出访其主页:http://www.yescaptcha.com/,透过邮箱注册两个账户。

YesCaptcha不止支持HCaptcha,还支持Google reCaptcha V2/V3版本的补齐,这里他们先关注其对HCaptch的补齐。

注册完YesCaptcha后,会获得两个clientKey,基于该clientKey便能采用YesCaptcha提供更多的补齐服务项目了。

对于HCaptcha相关补齐,须要在YesCaptcha中创建补齐接收者服务项目的API,相关文档为:https://yescaptcha.atlassian.net/wiki/spaces/YESCAPTCHA/pages/24543233/HCaptchaClassification+Hcaptcha

阅读文档后,发现只须要构建出上面表格中的参数并请求创建任务的API,便能实现接收者的补齐了。

Base64 编码的相片,不要包涵 “data:image/***;base64,”

属性类型必须说明typestring是HCaptchaClassification 10 点数querieslist[string]是以列表方式拼合1到9张相片:[base64, base64,base64,……]questionString是难题 ID, 请查表,支持中英文,其他语言请自行转换

代码实现

透过文档可知,他们须要HCaptcha接收者九宫格中相片对应的Base64以及接收者中的难题,透过Chrome的Network可知,HCaptcha会透过https://hcaptcha.com/getcaptcha获得接收者相片,该接口会返回JSON格式的数据,其中就包涵了接收者的难题以及九宫格中的相片,如下表右图图右图:

透过Selenium自动化浏览器,获得左图右图的数据,随后配合requests库和base64库,将相片转为相应的base64编码,具体代码如下表右图:

headers = {user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36}defget_as_base64(url):returnbase64.b64encode(requests.get(url).content)defget_captcha_image_base64(data):image_result=fordindata:img_base64 = get_as_base64(d[datapoint_uri])img_base64 = img_base64.decode(utf-8)image_result.append({url: d[datapoint_uri],task_key: d[task_key],base64: img_base64})returnimage_result

有了接收者九宫格相片对于的base64后,结合获得的难题,便能请求YesCaptcha创建补齐任务的服务项目了,代码如下表右图:

defcreate_task(question, queries):url=https://api.yescaptcha.com/createTaskdata = {“clientKey”: clientKey,“task”: {“type”:“HCaptchaClassification”,“question”: question,“queries”: queries,}}r = requests.post(url, json=data, timeout=60)returnr.json

将上述代码整合起来,便可得到两个完整的流程:

if__name__ ==__main__:withopen(data.json, encoding=utf8)asf:data= f.readdata = json.loads(data)question =data.get(requester_question, {}).get(zh)tasklist =data.get(tasklist)images = get_captcha_image_base64(tasklist)queries = [d[base64]fordinimages]result = create_task(question=question, queries=queries)pprint.pprint(result)

以下图为例,透过上述代码进行补齐。

运行上述代码后,获得结论如下表右图:

{errorCode:,errorId:0,solution: {objects: [True,True,True,True,False,False,True,True,True]},status:ready,taskId:13463c20-d031-11ec-b16d-c664134fc872}

其中solution便是此次补齐任务的结论,它的顺序与你请求时queries参数的顺序一致,基于solution的结论,利用Selenium便可完成相应的点选操作,如下表右图图右图

点选【检查和】按键,完成HCaptcha接收者的补齐

即使责任编辑侧重于怎样补齐HCaptcha,因此没花篇幅讨论怎样采用Selenium去自动化浏览器获得数据,但这个内容非常单纯,网上相关内容也比较多,就不花费笔墨如是说了。

未经允许不得转载:头号研究社-海外苹果ID购买注册|海外苹果礼品卡及Arcade订阅|海外账号购买、教程 » 如何优雅的破解HCaptcha验证码

赞 (0) 打赏

评论

5+2=

觉得文章对您有帮助请打赏,谢谢

支付宝扫一扫打赏

微信扫一扫打赏