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 Tkinter简单布局实例教程
Sep 03 Python
python安装oracle扩展及数据库连接方法
Feb 21 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
Python tornado队列示例-一个并发web爬虫代码分享
Jan 09 Python
Python中一些不为人知的基础技巧总结
May 19 Python
pygame游戏之旅 游戏中添加显示文字
Nov 20 Python
Python实现二维曲线拟合的方法
Dec 29 Python
对numpy下的轴交换transpose和swapaxes的示例解读
Jun 26 Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 Python
python中time、datetime模块的使用
Dec 14 Python
pytorch中的numel函数用法说明
May 13 Python
python基础之类方法和静态方法
Oct 24 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
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
javascript中将Object转换为String函数代码 (json str)
2012/04/29 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
使用js实现的简单拖拽效果
2015/03/18 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
使用js在layui中实现上传图片压缩
2019/06/18 Javascript
使用vant的地域控件追加全部选项
2020/11/03 Javascript
详解Python中的相对导入和绝对导入
2017/01/06 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
django+mysql的使用示例
2018/11/23 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
如何用Python 加密文件
2020/09/10 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
临床医学专业毕业生的自我评价
2013/10/17 职场文书
金融专业毕业生推荐信
2013/11/26 职场文书
优秀员工自荐书范文
2013/12/08 职场文书
警察思想汇报
2014/01/04 职场文书
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
高中军训感想800字
2014/02/23 职场文书
学籍证明模板
2015/06/18 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
instantclient客户端 连接oracle数据库
2022/04/26 Oracle