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判断windows隐藏文件的方法
Mar 21 Python
Python 冒泡,选择,插入排序使用实例
Feb 05 Python
使用python调用zxing库生成二维码图片详解
Jan 10 Python
Python科学画图代码分享
Nov 29 Python
Python控制键盘鼠标pynput的详细用法
Jan 28 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
python requests指定出口ip的例子
Jul 25 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
Jun 01 Python
python实现最短路径的实例方法
Jul 19 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 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数据库开发知多少
2006/10/09 PHP
php的memcached客户端memcached
2011/06/14 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
php实现将Session写入数据库
2015/07/26 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
js类 from qq
2006/11/13 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
3分钟学会一个Python小技巧
2018/11/23 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
树莓派实现移动拍照
2019/06/22 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
学校政风行风整改方案
2014/10/25 职场文书
党员思想汇报材料
2014/12/19 职场文书
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python
海弦WR-800F
2022/04/05 无线电
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript