Python 点击指定位置验证码破解的实现代码


Posted in Python onSeptember 11, 2019

思路:

创建浏览器驱动对象

加载登录页面

等待页面加载完毕

切换到用户名和密码登录模式

输入手机号, 注意此处需要等待并获取输入框

输入密码

点击验证按钮

获取弹出验证图片

使用超级鹰打码平台识别图形的坐标

获取到坐标信息, x,y坐标分别除以2; 由于电脑分辨率太过了, 是原来的两倍, 如果是普通分辨率可以除以2,直接用就可以了.

把鼠标移动到, 坐标点的位置进行点击

点击登录按钮

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver import ActionChains

import time
# 导入超级鹰
from chaojiying import chaojiying
#根据系统,可能截图不成功,需要使用无头浏览,mac系统可以不设置
options=webdriver.ChromeOptions()
options.headless=True

driver=webdriver.Chrome(options=potions)
driver.get('http://www.zhaopingou.com/signin')


driver.find_element_by_class_name('li02').click()
wait=WebDriverWait(driver,20,0.5)
# 账号登录
login_phone=wait.until(EC.visibility_of_element_located((By.ID,'pwd_login_phone')))
login_phone.send_keys('17724035140')
# 密码
driver.find_element_by_id('form_login_password').send_keys('961831740hzll')
# 点击获取图片
captcha = wait.until(EC.visibility_of_element_located((By.XPATH, '//div[@class="phone_login_pwd"]//iframe[starts-with(@id, "captcha_widget")]')))
captcha.click()
# 点击
# 保存图片(可以不保存)
captcha_element = wait.until(EC.visibility_of_element_located((By.XPATH, '//body[@class="graybc"]//iframe[starts-with(@id, "captcha_frame")]')))
captcha_element.screenshot('zhaopingou.png')

# 将图片转换为二进制
bytes_img=captcha_element.screenshot_as_png
# print(bytes_img)

result=chaojiying.post_pic(bytes_img,'9101')
x,y=result['pic_str'].split(',')
print(x,y)
x=int(x)
y=int(y)
# ActionChains(driver).move_to_element_with_offset(bytes_img,x,y).click().perform()
ActionChains(driver).move_to_element_with_offset(captcha_element, x, y).click().perform()
time.sleep(2)
driver.find_element_by_id('free_login_btn').click()

print(driver.window_handles)
driver.switch_to.window(driver.window_handles[0])
# time.sleep(5)
driver.quit()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用marshal模块序列化实例
Sep 25 Python
python 循环遍历字典元素的简单方法
Sep 11 Python
Django开发的简易留言板案例详解
Dec 04 Python
python机器人运动范围问题的解答
Apr 29 Python
python 将字符串完成特定的向右移动方法
Jun 11 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
Jan 03 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
Python识别验证码的实现示例
Sep 30 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
Nov 17 Python
Python数据分析入门之教你怎么搭建环境
May 13 Python
python如何为list实现find方法
May 30 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 #Python
python实现的发邮件功能示例
Sep 11 #Python
python 字符串常用函数详解
Sep 11 #Python
python sqlite的Row对象操作示例
Sep 11 #Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 #Python
python针对mysql数据库的连接、查询、更新、删除操作示例
Sep 11 #Python
Python range、enumerate和zip函数用法详解
Sep 11 #Python
You might like
PHP array操作10个小技巧分享
2011/06/23 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
js静态作用域的功能。
2006/12/25 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
理解JS事件循环
2016/01/07 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
AngularJS实现注册表单验证功能
2017/10/16 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
python实现按任意键继续执行程序
2016/12/30 Python
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
给水工程专业毕业生自荐信
2014/01/28 职场文书
网页美工求职信
2014/02/15 职场文书
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript