使用第三方打码平台图鉴识别滑动验证码模拟登录

这篇具有很好参考价值的文章主要介绍了使用第三方打码平台图鉴识别滑动验证码模拟登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.图鉴的账户注册

图鉴网页地址: http://www.ttshitu.com/

登录后充值一个提分
使用第三方打码平台图鉴识别滑动验证码模拟登录
使用第三方打码平台图鉴识别滑动验证码模拟登录
使用第三方打码平台图鉴识别滑动验证码模拟登录

把这个python脚本复制保存到一个python文件中去

识别流程

首先你要先确定验证码的类型,然后选择类型对应的编号

使用第三方打码平台图鉴识别滑动验证码模拟登录
使用第三方打码平台图鉴识别滑动验证码模拟登录

使用第三方打码平台图鉴识别滑动验证码模拟登录

二.欧模网案例滑动验证码模拟登录

页面分析

我们就用邮箱登录为例

我们点击登录后会有一个滑动验证码的验证,这就是我们主要的问题,下面我们将用代码来实现它
使用第三方打码平台图鉴识别滑动验证码模拟登录
使用第三方打码平台图鉴识别滑动验证码模拟登录
使用第三方打码平台图鉴识别滑动验证码模拟登录
使用第三方打码平台图鉴识别滑动验证码模拟登录

使用第三方打码平台图鉴识别滑动验证码模拟登录

三.代码分析

这个距离是验证码相对原背景图片的距离
使用第三方打码平台图鉴识别滑动验证码模拟登录
使用第三方打码平台图鉴识别滑动验证码模拟登录
使用第三方打码平台图鉴识别滑动验证码模拟登录

使用第三方打码平台图鉴识别滑动验证码模拟登录

这里可以看出小图片的宽为340px,而大图片的宽为670px,且缺口距离大图边缘398px,这里设小图片缺口距离小图片边缘Xpx,利用相似的性质可以得到
X = (398/670)*340
使用第三方打码平台图鉴识别滑动验证码模拟登录

使用第三方打码平台图鉴识别滑动验证码模拟登录

这里减去了30px是因为验证码不需要滑动前面的那段距离

使用第三方打码平台图鉴识别滑动验证码模拟登录

实行了一切动作链的操作,实行之前记得要导入一个第三方库from selenium.webdriver.common.action_chains import ActionChains,而且当你实行了动作链操作后要记得使用action.perform()方法提交动作链操作,最后要再次去实例化一个动作链去松开鼠标,因为前面有一个click and hold()按住鼠标的方法,要用action.release()去松开鼠标
使用第三方打码平台图鉴识别滑动验证码模拟登录
最后是一个模拟客户端滑动验证码的操作,这里为了避免验证码验证出错,做了一个异常捕获,并且点击刷新按钮,让它重新获取验证滑块进行拖动滑块验证

四.欧模网案例展示

from selenium import webdriver
import base64
import json
import requests
from PIL import Image
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains


def base64_api(uname, pwd, img, typeid):
    with open(img, 'rb') as f:
        base64_data = base64.b64encode(f.read())
        b64 = base64_data.decode()
    data = {"username": uname, "password": pwd, "typeid": typeid, "image": b64}
    result = json.loads(requests.post("http://api.ttshitu.com/predict", json=data).text)
    if result['success']:
        return result["data"]["result"]
    else:
        return result["message"]
    return ""


driver = webdriver.Chrome()
driver.maximize_window()

driver.get('https://www.om.cn/login')

# 点击 手机/邮箱
driver.find_element_by_xpath('//*[@id="__layout"]/div/div/div/div[2]/div/div[1]/div[3]/div/div[1]/span').click()

# 点击 邮箱登录
driver.find_element_by_xpath('//*[@id="__layout"]/div/div/div/div[2]/div/div[1]/div[2]/div[1]/div[2]/span').click()

# 输入邮箱
driver.find_element_by_xpath('//*[@id="__layout"]/div/div/div/div[2]/div/div[1]/div[2]/div[2]/div[2]/input').send_keys(
    '你注册的邮箱')

# 输入密码
driver.find_element_by_xpath('//*[@id="__layout"]/div/div/div/div[2]/div/div[1]/div[2]/div[2]/div[4]/input').send_keys(
    '你注册的网页密码')

# 点击登录按钮
driver.find_element_by_xpath('//*[@id="__layout"]/div/div/div/div[2]/div/div[1]/div[2]/div[2]/button').click()
sleep(1)  # 加载验证码

# 切换框架
driver.switch_to.frame('tcaptcha_iframe_dy')

element = driver.find_element_by_id('slideBg')
src = 'https://t.captcha.qq.com' + element.get_attribute('style').split(r'"')[1]  # 背景图片
exit()
content = requests.get(url=src).content

with open('./code.png', 'wb') as f:
    f.write(content)

# 识别图片验证码的位置
img_path = "./code.png"
result = base64_api(uname='xpBear', pwd='xp1693889638', img=img_path, typeid=33)
print('距离: ', result)

num = (int(result) / 672) * 340 - 30  # 滑块移动的距离

print('真实距离: ', num)

while True:
    div = driver.find_element_by_xpath('//*[@id="tcOperation"]/div[8]')
    action = ActionChains(driver)
    action.click_and_hold(div)  # 长按滑块
    for i in range(10):
        action.move_by_offset(num / 10, 0)  # 移动的距离
        sleep(0.3)
    action.perform()  # 执行上面的动作

    action = ActionChains(driver)
    action.release().perform()  # 释放滑块
    sleep(1)

    if driver.title == '欧模网-账户登录':
        try:
            driver.find_element_by_xpath('//*[@id="reload"]/img').click()
            sleep(1)
        except:
            break
    else:
        print('登录成功!')
        break

sleep(1)

print(driver.page_source)

以上代码由于有涉及到账户隐私我用中文描述代替了,大家可以自己注册一个账号去使用这个代码模拟客户端滑动验证码登录,从中去感受一下,相信会有意想不到的乐趣

总结

本篇文章主要是解决爬虫过程中一个滑动验证码如何进行登录的,模拟客户端进行滑动验证的过程,希望本篇文章可以帮助到大家,可以这篇文章在排版上有点乱,但是上面的知识都是我学习成果的分享,给个三连支持一波吧!文章来源地址https://www.toymoban.com/news/detail-456200.html

到了这里,关于使用第三方打码平台图鉴识别滑动验证码模拟登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信开放平台之第三方平台开发,从哪里入手?

    大家好,我是悟空码字 疫情之下,最近有不少兄弟没有挺进决赛,半途成了小羊人,可谓是出师未捷身先死。话说回来,不管怎么样,尽量保护好自己,能越晚变羊越好。 开始说正事,不管是自己在创业或学习也好,还是公司的开发任务也罢,有很多小伙伴在开发多小程序

    2024年02月10日
    浏览(55)
  • 微信第三方平台对接小程序发版

    微信第三方平台是商家把公众号或小程序代交给服务商来管理, 当商家把小程序授权给第三方平台后,同时授权小程序开发与数据分析,小程序后台就无法发版 ,必须开发人员调小程序的api才能实现发版;如不需要调第三方平台接口的方式发布,取消 小程序开发与数据分析

    2024年02月16日
    浏览(75)
  • 【第三方SDK接入汇总】Unity接入VuforiaAR(图片识别)

    目录 一.注册Vuforia账号 二.获取许可秘钥 三.获取Vuforia的SDK导入unity 四.搭建创建AR场景 五.打包到手机 注册地址:Engine Developer Portal 申请地址:https://developer.vuforia.com/vui/develop/licenses 方式一: 官网下载 下载地址:SDK Download | Engine Developer Portal  下载后把package包导入unity即可。

    2024年04月08日
    浏览(53)
  • 京东数据分析工具推荐(京东第三方数据平台)

    京东平台的店铺众多,同行数不胜数。作为商家,如果连自己竞争对手的情况都不知道的话,很难在这个平台存活下去。 那么,这次鲸参谋就来重点说一下我们的京东数据分析工具里的“竞品分析”功能。 竞品分析,主要是对京东店铺运营期间竞争对手的市场经营状况与策略

    2024年02月04日
    浏览(62)
  • RK3568平台 TinyAlsa集成第三方音频算法

    ALSA(Advanced Linux Sound Architecture)是一个开源项目,涵盖了用户空间和内核空间对音频设备的操作接口,通过应用层使用alsalib可以实现对音频设备的控制         TinyAlsa是android推出的一个精简的ALSA库,当然alsa-driver这块没有改动         alsa包含:1、内核 alsa-driver 2.用户空间

    2024年01月23日
    浏览(55)
  • 海康威视iSC 平台第三方对接门禁权限分享

    一、 场景描述 iSC 平台的门禁产品及功能在项目应用广泛,第三方对接门禁权限功能的需求也越来也 多,由于门禁权限下发需要涉及到往设备上下发,第三方接口调用一旦不正确,不合理的接 口调用很容易给我们平台造成额外的性能消耗,甚至导致我们平台挂掉,特此梳理

    2024年02月02日
    浏览(361)
  • 银行测试:第三方支付平台业务流,功能/性能/安全测试方法

    在信用方面,第三方支付平台作为中介,在网上交易的商家和消费者之间作一个信用的中转,通过改造支付流程来约束双方的行为,从而在一定程度上缓解彼此对双方信用的猜疑,增加对网上购物的可信度。 在技术层面,第三方支付平台承担安全保障和技术支持的作用,提供

    2024年02月04日
    浏览(47)
  • 自营外卖配送平台的商家如何对接第三方美饿的订单

    自营外卖跑腿平台对接第三方美饿的好处 单说美团饿了么自身的流量优势,很多商家不能忽视,但是美团饿了么的高额配送成本与抽成,同样也不能忽视。很多商家希望选择自配送或者其他更划算的配送方式来节省成本。这时,区域性的自建外卖平台与美团、饿了么实现订单

    2024年02月13日
    浏览(40)
  • 银行测试:第三方支付平台业务流,功能/性能/安全测试方法(超详细整理)

    在信用方面,第三方支付平台作为中介,在网上交易的商家和消费者之间作一个信用的中转,通过改造支付流程来约束双方的行为,从而在一定程度上缓解彼此对双方信用的猜疑,增加对网上购物的可信度。 在技术层面,第三方支付平台承担安全保障和技术支持的作用,提供

    2024年02月03日
    浏览(52)
  • 支持多种通信方式和协议方便接入第三方服务器或云平台

    2路RS485串口是一种常用的通信接口,可以支持Modbus Slave协议,并可接入SCADA、HMI、DSC、PLC等上位机。它还支持Modbus RTU Master协议,可用于扩展多达48个Modbus Slave设备,如Modbus RTU远程数据采集模块、电表、水表、柴油发电机、变频器、PLC等。本文将详细介绍2路RS485串口的功能及应

    2024年02月15日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包