1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python验证码识别: 图片验证 滑动验证 点选验证...

Python验证码识别: 图片验证 滑动验证 点选验证...

时间:2023-10-01 07:30:22

相关推荐

Python验证码识别: 图片验证  滑动验证  点选验证...

目录

前言环境使用:模块使用:代码展示图片验证码滑动验证码:点选验证:尾语

前言

嗨喽~大家好呀,这里是小曼呐 ❤ ~!

环境使用:

Python 3.8 解释器Pycharm 编辑器

模块使用:

selenium --> pip install selenium==3.141.0ddddocr --> pip install ddddocr

代码展示

导入模块

# from selenium import webdriver# from selenium.webdriver import ActionChains# from password import account_train, password_train# # 导入时间模块# import time

1.打开浏览器

# driver = webdriver.Chrome()# # 绕过检测# driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",# {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})

2.访问网站

# driver.get('/otn/resources/login.html')

3.登陆账号密码, 点击登陆

先定位输入框<元素定位>, 然后再输入内容

I. css选择器

II. xpath节点提取

网站检测到了, 你在使用selenium --> 绕过检测

# # 通过 CSS 选择器查找元素# driver.find_element_by_css_selector('#J-userName').send_keys('账号')# driver.find_element_by_css_selector('#J-password').send_keys('密码')# driver.find_element_by_css_selector('#J-login').click()

4.<出现验证码> --> 滑动操作就可以了

I. 按住滑块 --> 鼠标动作链

II. 滑动滑块 --> 滑到哪里呢?

网页元素还没加载出来, 你就去定位元素, 找不到…

延时

# time.sleep(1)

定位滑块元素

# h = driver.find_element_by_css_selector('#nc_1_n1z')# action = ActionChains(driver)# # perform() 执行操作# action.click_and_hold(h).perform()# action.move_by_offset(85, 0)# action.move_by_offset(85, 0)# action.move_by_offset(85, 0)# action.move_by_offset(85, 0)# # 释放# action.release().perform()

图片验证码

img\img.png 相对路径D:\自游\验证码识别\img\img.png 绝对路径mode=‘rb’ 以二进制方法读取数据内容

ddddocr 缺点: 识别准确率不是很高

导入识别模块

import ddddocr

实例化对象

ocr = ddddocr.DdddOcr()

读取图片内容

f = open('img\\img_1.png', mode='rb')img = f.read()result = ocr.classification(img)print(result)

滑动验证码:

12306网站滑动验证码

selenium 模块自动化测试模块

selenium --> 浏览器驱动 --> 浏览器 <模拟人的行为去操作流程>

selenium 默认安装是4.0版本 语法和3.0不同 pip install selenium==3.141.0

谷歌浏览器

谷歌驱动 --> 版本选择 和你浏览器版本最相近就可以了

下载好了之后解压就可以了, 不需要双击安装

3.打开浏览器

驱动路径:

I. 驱动文件在python安装目录下 <不需要添加路径>

II. 驱动文件和代码放在一起 <不需要添加路径>

III. 写驱动路径 绝对路径

4.访问网站

5.登陆账号密码, 点击登陆

6.<出现验证码> --> 滑动操作就可以了

点选验证:

模拟登陆

from selenium import webdriverfrom selenium.webdriver import ActionChainsimport timefrom password import VideoAccount, VideoPassword, account, passwordfrom chaojiying import Chaojiying_Clientdriver = webdriver.Chrome()driver.get('https://*****/')driver.find_element_by_css_selector('.header-login-entry').click()time.sleep(1)driver.find_element_by_css_selector('.tab__form div:nth-child(1) input').send_keys(VideoAccount)driver.find_element_by_css_selector('.tab__form div:nth-child(3) input').send_keys(VideoPassword)driver.find_element_by_css_selector('div.btn_primary').click()"""对接打码平台 --> 超级鹰"""time.sleep(2)img = driver.find_element_by_css_selector('.geetest_item.geetest_big_item')img.screenshot('yzm.png')im = open('yzm.png', 'rb').read()chaojiying = Chaojiying_Client(account, password, '96001')pic_str = chaojiying.PostPic(im, 9004)['pic_str']for index in pic_str.split('|'):x = index.split(',')[0]y = index.split(',')[1]action = ActionChains(driver)action.move_to_element_with_offset(img, int(x), int(y)).click().perform()driver.find_element_by_css_selector('.geetest_commit_tip').click()

尾语

感谢你观看我的文章呐~💝

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

学无止境,期待你变成更好的自己。(让我们一起努力叭)。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。