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 相关文章推荐
详解Python3.1版本带来的核心变化
Apr 07 Python
栈和队列数据结构的基本概念及其相关的Python实现
Aug 24 Python
Django中的ajax请求
Oct 19 Python
Python分支语句与循环语句应用实例分析
May 07 Python
Python实现个人微信号自动监控告警的示例
Jul 03 Python
Python shelve模块实现解析
Aug 28 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
python实现ip地址的包含关系判断
Feb 07 Python
python实现在线翻译功能
Mar 03 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
python如何进行矩阵运算
Jun 05 Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 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修改时间格式的代码
2011/05/29 PHP
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
React中的refs的使用教程
2018/02/13 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
Vue是怎么渲染template内的标签内容的
2020/06/05 Javascript
k8s node节点重新加入master集群的实现
2021/02/22 Javascript
Python 字典dict使用介绍
2014/11/30 Python
python中zip()方法应用实例分析
2016/04/16 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
TensorFlow Session会话控制&Variable变量详解
2018/07/30 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
python实现按日期归档文件
2021/01/30 Python
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
美国电子产品主要品牌的授权在线零售商:DataVision
2019/03/23 全球购物
手工制作的豪华英式沙发和沙发床:Willow & Hall
2019/05/03 全球购物
大学专科生推荐信范文
2013/11/23 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
蛋糕店创业计划书
2014/05/06 职场文书
公司年会开场白
2015/06/01 职场文书
行政处罚告知书
2015/07/01 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
高中数学教学反思范文
2016/02/18 职场文书
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers