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 import自定义模块方法
Feb 12 Python
在Python中封装GObject模块进行图形化程序编程的教程
Apr 14 Python
python中sleep函数用法实例分析
Apr 29 Python
python制作一个桌面便签软件
Aug 09 Python
Centos Python2 升级到Python3的简单实现
Jun 21 Python
python基础之入门必看操作
Jul 26 Python
django的分页器Paginator 从django中导入类
Jul 25 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
python-OpenCV 实现将数组转换成灰度图和彩图
Jan 09 Python
使用Python脚本从文件读取数据代码实例
Jan 19 Python
利用django model save方法对未更改的字段依然进行了保存
Mar 28 Python
Django日志及中间件模块应用案例
Sep 10 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生成WAP页面
2006/10/09 PHP
php标签云的实现代码
2012/10/10 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
python连接sql server乱码的解决方法
2013/01/28 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
用Python编写简单的微博爬虫
2016/03/04 Python
python使用mysql数据库示例代码
2017/05/21 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
物理教育专业毕业生推荐信
2013/11/03 职场文书
采购求职信
2014/03/17 职场文书
田径运动会通讯稿
2014/09/13 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
OpenCV实现反阈值二值化
2021/11/17 Java/Android