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 条件判断的缩写方法
Sep 06 Python
Python基于pygame实现图片代替鼠标移动效果
Nov 11 Python
详解python Todo清单实战
Nov 01 Python
Python3.5基础之NumPy模块的使用图文与实例详解
Apr 24 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
Django ORM 常用字段与不常用字段汇总
Aug 09 Python
Python定义函数时参数有默认值问题解决
Dec 19 Python
如何使用python实现模拟鼠标点击
Jan 06 Python
Python中包的用法及安装
Feb 11 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
python爬取微博评论的实例讲解
Jan 15 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
Feb 23 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
上海无线电三厂简史修改版
2021/03/01 无线电
通过Email发送PHP错误的方法
2015/07/20 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
2019/09/27 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
python的常见命令注入威胁
2013/02/18 Python
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
不可错过的十本Python好书
2017/07/06 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
python3中zip()函数使用详解
2018/06/29 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
经济管理专业毕业生推荐信
2013/11/11 职场文书
自主招生自荐信范文
2013/12/04 职场文书
村委会贫困证明
2014/01/14 职场文书
企业标语大全
2014/07/01 职场文书
超市理货员岗位职责
2014/07/04 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android
springboot读取nacos配置文件
2022/05/20 Java/Android