Python 点击指定位置验证码破解的实现代码

作者:qq_42956206 时间:2022-07-15 11:17:58 

思路:

创建浏览器驱动对象

加载登录页面

等待页面加载完毕

切换到用户名和密码登录模式

输入手机号, 注意此处需要等待并获取输入框

输入密码

点击验证按钮

获取弹出验证图片

使用超级鹰打码平台识别图形的坐标

获取到坐标信息, 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()

来源:https://blog.csdn.net/qq_42956206/article/details/85106673

标签:Python,验证码,破解
0
投稿

猜你喜欢

  • python实现简单多人聊天室

    2022-08-17 15:04:13
  • 关于Javascript闭包与应用的详解

    2024-04-23 09:09:28
  • Facebook是如何设计的[译]

    2009-09-17 13:10:00
  • ORACLE 如何查询被锁定表及如何解锁释放session

    2023-07-02 11:59:39
  • 把vgg-face.mat权重迁移到pytorch模型示例

    2021-11-03 16:29:20
  • 教你制作IBM LOGO的方法

    2007-10-23 13:34:00
  • python 第三方库的安装及pip的使用详解

    2023-12-27 07:06:53
  • Python决策树分类算法学习

    2023-01-28 17:27:05
  • pyecharts结合flask框架的使用

    2022-12-01 18:37:25
  • python神经网络InceptionV3模型复现详解

    2021-05-29 16:53:01
  • 如何调试 XMLHttpRequest

    2008-08-15 13:59:00
  • Go语言实现牛顿法求平方根函数的案例

    2024-03-27 00:04:56
  • Python一行代码解决矩阵旋转的问题

    2022-03-08 12:44:11
  • Python 标准库zipfile将文件夹加入压缩包的操作方法

    2021-09-17 14:06:10
  • Python面向对象之类和对象实例详解

    2022-10-02 05:39:34
  • 利用Python的装饰器解决Bottle框架中用户验证问题

    2022-10-07 07:49:15
  • 自己动手用Golang实现约瑟夫环算法的示例

    2024-04-23 09:48:50
  • pandas中DataFrame重置索引的几种方法

    2023-06-10 00:26:45
  • python中json格式数据输出的简单实现方法

    2021-03-04 22:19:19
  • wxPython之解决闪烁的问题

    2022-05-12 13:21:30
  • asp之家 网络编程 m.aspxhome.com