解析百度验证码逆向过程

马尚
• 阅读 37

首先,我们需要获取验证码验证过程所需的参数,包括as、ds和tk。这些参数可以通过请求获取。

python Copy code def get_verification_parameters(): url = "https://passport.baidu.com/viewlog" params = { "callback": "jQuery110205449684422426735_" + str(int(time.time() * 1000)), "ak": "33c48884b7df83d4230e07cbcd0d07fd", "_": str(int(time.time() * 1000)) } response = session.get(url, headers=headers, params=params) res_data = re.findall(r'.?({.?}))', response.text)[0] res_data = json.loads(res_data) parameters = { "tk": res_data['data']['tk'], "as": res_data['data']['as'], "ds": res_data['data']['ds'] } return parameters 获取验证码图片 然后,我们需要获取验证码图片,并解析其中的内容。

python Copy code def get_verification_image(parameters): url = "https://passport.baidu.com/viewlog/getstyle" params = { "callback": "jQuery110205449684422426735_" + str(time.time() * 1000), "ak": '3de47787fd60b30420f868ffbf4dbccd', "tk": parameters["tk"], "isios": "0", "type": "spin", "_": str(time.time() * 1000) } response = session.get(url, headers=headers, params=params) ret_data = re.findall(r'.?({.?}))', response.text)[0] ret_data = json.loads(ret_data) verification_image = { "image_url": unquote(ret_data['data']['ext']['img']), "backstr": ret_data['data']['backstr'], "tk": parameters["tk"], "as": parameters["as"] } response = session.get(verification_image['img_url'], verify=False) with open('verification_image.png', 'wb')as f: f.write(response.content) return verification_image 打码 我们将获取到的验证码图片提交给打码平台进行识别。

python Copy code def solve_captcha(verification_image): with open('verification_image.png', 'rb') as f: image_content = f.read() image_b64 = base64.b64encode(image_content) # 调用打码API captcha_solution = dama_api(image_b64) verification_image['angle'] = captcha_solution return verification_image 验证 最后,我们将获取到的验证结果提交给百度服务器进行验证。

python Copy code def verify_captcha(verification_image): url = "https://passport.baidu.com/viewlog" fs = build_fs(int(verification_image['angle']), verification_image['as'], verification_image['backstr']) params = { "callback": "jQuery110204100787474351779_" + str(time.time() * 1000), "ak": "3de47787fd60b30420f868ffbf4dbccd", "as": verification_image['as'], "fs": fs, "tk": verification_image['tk'], "cv": "submit", "_": str(time.time() * 1000) } response = session.get(url, headers=headers, params=params) ret_data = re.findall(r'.?({.?}))', response.text)[0] ret_data = json.loads(ret_data) return ret_data 主函数 将上述步骤整合到主函数中。

python Copy code def main(): parameters = get_verification_parameters() verification_image = get_verification_image(parameters) verification_image = solve_captcha(verification_image) verification_result = verify_captcha(verification_image) if verification_result['data']['op'] == 1: print("验证通过") else: print("验证失败")

if name == "main": main() 更多内容联系q1436423940

点赞
收藏
评论区
推荐文章
Stella981 Stella981
2年前
SpringBoot2 学习10 Controller接收参数的方式
地址传值@PathVariable获取路径参数。即url/{id}这种形式。?传值@RequestParam获取查询参数。即url?name这种形式用注解@RequestParam绑定请求参数到方法入参当请求参数username不存在时会有异常发生,可以通过设置属性requiredfalse解决,例如:@R
Easter79 Easter79
2年前
SpringBoot2 学习10 Controller接收参数的方式
地址传值@PathVariable获取路径参数。即url/{id}这种形式。?传值@RequestParam获取查询参数。即url?name这种形式用注解@RequestParam绑定请求参数到方法入参当请求参数username不存在时会有异常发生,可以通过设置属性requiredfalse解决,例如:@R
马尚 马尚
1个月前
破解人机验证:如何应对极验滑块验证码
极验滑块验证码是一种常见的人机验证机制,它通过要求用户在拖动滑块到特定位置来验证用户的人类身份。在这篇文章中,我们将介绍如何破解极验滑块验证码,以便于自动化程序能够绕过这种验证。1.获取验证码图片首先,我们需要从目标网站获取极验滑块验证码的图片。通常,这个
马尚 马尚
1个月前
使用Python破解数字验证码
数字验证码通常用于网站或应用程序的用户身份验证和安全性保护。本文将介绍如何使用Python编写代码来破解数字验证码,以便于自动化处理验证码验证过程。1.分析验证码页面首先,我们需要分析网站或应用程序的验证码页面,了解验证码是如何呈现的以及需要提交的参数。通
马尚 马尚
1个月前
使用JavaScript破解数字验证码
数字验证码通常用于网站或应用程序的用户身份验证和安全性保护。本文将介绍如何使用JavaScript编写代码来破解数字验证码,以便于自动化处理验证码验证过程。1.分析验证码页面首先,我们需要分析网站或应用程序的验证码页面,了解验证码是如何呈现的以及需要提交的
马尚 马尚
1个月前
用Python破解简单的数字验证码
数字验证码通常是网站或应用程序中用于验证用户身份的一种方式。本文将介绍如何使用Python编写代码来破解简单的数字验证码,以便于自动化处理验证码验证过程。1.分析验证码页面首先,我们需要分析网站或应用程序的验证码页面,了解验证码是如何呈现的以及需要提交的参
马尚 马尚
1个月前
用Python和机器学习识别英文数字验证码
在本项目中,我们将展示如何使用Python和机器学习技术来识别英文数字验证码。英文数字验证码通常包含了一系列随机生成的字母和数字,我们将利用机器学习模型来训练识别这些验证码。首先,我们需要导入所需的库:pythonimportosimportnumpyas
马尚 马尚
1个月前
解析百度验证码逆向过程
首先,我们需要获取验证码验证过程所需的参数,包括as、ds和tk。这些参数可以通过请求获取。pythonCopycodedefgetverificationparameters():url"https://passport.baidu.com/viewlo
马尚 马尚
4星期前
Python代码实现逆向打码过程
分析重定向的URL,获取关键参数:通过分析重定向的URL,获取as、ds、tk等关键参数,这些参数在后续的验证过程中会用到。pythonCopycodedefgetimagerequestdata(self):发送请求获取需要获取图片的参数解析响应,提取关
马尚 马尚
4星期前
用JavaScript逆向识别和验证百度网站验证码
第一步:获取验证码图片和相关参数我们首先需要获取验证码图片以及相关的参数,这些参数在后续的验证过程中会用到。我们通过发送HTTP请求到百度网站,解析响应数据,提取出关键的参数。javascript//获取验证码图片和相关参数asyncfunctionget