解析百度验证码逆向过程

马尚
• 阅读 234

首先,我们需要获取验证码验证过程所需的参数,包括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

点赞
收藏
评论区
推荐文章
马尚 马尚
6个月前
破解人机验证:如何应对极验滑块验证码
极验滑块验证码是一种常见的人机验证机制,它通过要求用户在拖动滑块到特定位置来验证用户的人类身份。在这篇文章中,我们将介绍如何破解极验滑块验证码,以便于自动化程序能够绕过这种验证。1.获取验证码图片首先,我们需要从目标网站获取极验滑块验证码的图片。通常,这个
马尚 马尚
6个月前
使用Python破解数字验证码
数字验证码通常用于网站或应用程序的用户身份验证和安全性保护。本文将介绍如何使用Python编写代码来破解数字验证码,以便于自动化处理验证码验证过程。1.分析验证码页面首先,我们需要分析网站或应用程序的验证码页面,了解验证码是如何呈现的以及需要提交的参数。通
马尚 马尚
6个月前
解析百度验证码逆向过程
首先,我们需要获取验证码验证过程所需的参数,包括as、ds和tk。这些参数可以通过请求获取。pythonCopycodedefgetverificationparameters():url"https://passport.baidu.com/viewlo
马尚 马尚
6个月前
Python代码实现逆向打码过程
分析重定向的URL,获取关键参数:通过分析重定向的URL,获取as、ds、tk等关键参数,这些参数在后续的验证过程中会用到。pythonCopycodedefgetimagerequestdata(self):发送请求获取需要获取图片的参数解析响应,提取关
马尚 马尚
6个月前
用JavaScript逆向识别和验证百度网站验证码
第一步:获取验证码图片和相关参数我们首先需要获取验证码图片以及相关的参数,这些参数在后续的验证过程中会用到。我们通过发送HTTP请求到百度网站,解析响应数据,提取出关键的参数。javascript//获取验证码图片和相关参数asyncfunctionget
崇恩圣帝 崇恩圣帝
5个月前
使用Python识别滑块验证码缺口的方法
步骤一:获取验证码图像首先,我们需要获取网站上的验证码图像。为了简化示例,我们将模拟一个验证码图像,包括带有缺口的滑块图像和完整的背景图像。你可以使用网络爬虫或者API来获取实际网站上的验证码图像。python复制代码获取验证码图像(模拟)importcv
崇恩圣帝 崇恩圣帝
5个月前
使用Python识别滑块验证码缺口的方法
步骤一:获取验证码图像首先,我们需要获取网站上的验证码图像。为了简化示例,我们将模拟一个验证码图像,包括带有缺口的滑块图像和完整的背景图像。你可以使用网络爬虫或者API来获取实际网站上的验证码图像。python复制代码获取验证码图像(模拟)importcv
崇恩圣帝 崇恩圣帝
5个月前
用Python破解滑块验证码的方法详解
步骤一:获取验证码图像首先,我们需要获取网站上的滑块验证码图像。可以通过网络爬虫或者直接从网站上获取图像数据。在这个示例中,我们将使用一张模拟的滑块验证码图片进行演示。python复制代码importcv2读取验证码图片captchaimagecv2.im
崇恩圣帝 崇恩圣帝
5个月前
使用Python识别滑块验证码缺口的方法及实现步骤详解
步骤一:获取验证码图像首先,我们需要获取网站上的滑块验证码图像。可以使用网络爬虫或直接从网站上获取图像数据。在这个示例中,我们将使用一张模拟的滑块验证码图片进行演示。python复制代码importcv2读取滑块验证码图片captchaimagecv2.i
崇恩圣帝 崇恩圣帝
5个月前
使用Python识别滑块验证码缺口的方法及实现步骤详解
步骤一:获取验证码图像首先,我们需要获取网站上的滑块验证码图像。可以使用网络爬虫或直接从网站上获取图像数据。在这个示例中,我们将使用一张模拟的滑块验证码图片进行演示。python复制代码importcv2读取滑块验证码图片captchaimagecv2.i