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 strip lstrip rstrip使用方法
Sep 06 Python
浅谈django model postgres的json字段编码问题
Jan 05 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
Python产生Gnuplot绘图数据的方法
Nov 09 Python
python版飞机大战代码分享
Nov 20 Python
Python弹出输入框并获取输入值的实例
Jun 18 Python
Python图像处理PIL各模块详细介绍(推荐)
Jul 17 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
详解pycharm2020.1.1专业版安装指南(推荐)
Aug 07 Python
python实现AHP算法的方法实例(层次分析法)
Sep 09 Python
用Python实现职工信息管理系统
Dec 30 Python
python使用numpy中的size()函数实例用法详解
Jan 29 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 fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
Vue如何获取数据列表展示
2019/12/11 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
Python中join和split用法实例
2015/04/14 Python
在Python的Django框架中创建和使用模版
2015/07/15 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
python开头的coding设置方法
2019/08/08 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
Python 必须了解的5种高级特征
2020/09/10 Python
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
2014年政风行风评议工作总结
2014/10/21 职场文书
怎么写工作检讨书
2014/11/16 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
务虚会发言材料
2014/12/25 职场文书
企业法人代表证明书
2015/06/18 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
导游词之日月潭
2019/11/05 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android