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 psutil模块简单使用实例
Apr 28 Python
Python实现给文件添加内容及得到文件信息的方法
May 28 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
Python编程中装饰器的使用示例解析
Jun 20 Python
Golang与python线程详解及简单实例
Apr 27 Python
Python并发编程协程(Coroutine)之Gevent详解
Dec 27 Python
Python request设置HTTPS代理代码解析
Feb 12 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
May 09 Python
python opencv将图片转为灰度图的方法示例
Jul 31 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
BeautifulSoup获取指定class样式的div的实现
Dec 07 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防注入安全代码
2008/04/09 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
php Session存储到Redis的方法
2013/11/04 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
js面向对象的写法
2016/02/19 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
python实现图片筛选程序
2018/10/24 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
酒吧总经理岗位职责
2013/12/10 职场文书
小学教师培训方案
2014/06/09 职场文书
租房安全协议书
2014/08/20 职场文书
运动会加油稿100字
2014/09/19 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
Nginx服务器如何设置url链接
2021/03/31 Servers
Python面向对象之成员相关知识总结
2021/06/24 Python