使用第三方打码平台图鉴识别滑动验证码模拟登录
文章目录
- 一.图鉴的账户注册
- 识别流程
- 二.欧模网案例滑动验证码模拟登录
- 页面分析
- 三.代码分析
- 四.欧模网案例展示
- 总结
一.图鉴的账户注册
图鉴网页地址: 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 ActionChainsdef 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).contentwith 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:breakelse:print('登录成功!')breaksleep(1)print(driver.page_source)
以上代码由于有涉及到账户隐私我用中文描述代替了,大家可以自己注册一个账号去使用这个代码模拟客户端滑动验证码登录,从中去感受一下,相信会有意想不到的乐趣
总结
本篇文章主要是解决爬虫过程中一个滑动验证码如何进行登录的,模拟客户端进行滑动验证的过程,希望本篇文章可以帮助到大家,可以这篇文章在排版上有点乱,但是上面的知识都是我学习成果的分享,给个三连支持一波吧!
使用第三方打码平台图鉴识别滑动验证码模拟登录相关推荐
- python—简单数据抓取四(利用超级鹰的ocr识别图片验证码模拟登录超级鹰网站、利用百度云的ocr识别自如租房网价格图片获取到自如网的价格)
学习目标: python学习二十四 -简单数据抓取四 学习内容: 1.利用超级鹰的ocr识别图片验证码模拟登录超级鹰网站 2.利用百度云的ocr识别自如租房网的价格图片,获取到自如网的价格数据 1.利 ...
- Reptile:requests + 云打码平台实现 识别图片验证码登陆
使用requests加上打码平台云打码,实现登陆有图片验证的网站,是图片验证码. 豆瓣的登陆验证方式换了,换成点击验证和图片滑动验证组合的了,所以实验对象不能使用豆瓣了 图片不能是JS写入的,必须得有 ...
- 第三方打码平台超级鹰图文识别,md5算法加密
文章目录 一.注册超级鹰账户 二.利用超级鹰模拟登录古诗文网 网页分析 代码实现解析 为什么要使用session 三.总结 **感谢观看,给个三连支持一下吧** 一.注册超级鹰账户 超级鹰链接:htt ...
- 远程打码平台是如何进行验证码的识别的?
使用远程打码平台朋友是越来越多了,有很多朋友都对技术不太了解,他们对于远程打码平台是怎么进行验证码识别的十分好奇,远程打码平台是如何进行验证码识别的呢? 我们就以做了很长时间的网络验证码识别这一块的答 ...
- 增强版!如何深度学习识别滑动验证码缺口
这是「进击的Coder」的第 394 篇技术分享 作者:崔庆才 来源:崔庆才丨静觅 之前的文章中其实已经提到过如何使用深度学习来识别滑动验证码缺口,文章见利用 Python 深度学习识别滑动验证码缺口 ...
- 深度学习识别滑动验证码缺口
1. 准备工作 同样地,本节还是主要侧重于完成利用深度学习模型来识别验证码缺口的过程,所以不会侧重于讲解深度学习模型的算法,另外由于整个模型实现较为复杂,本节也不会从零开始编写代码,而是倾向于把代码提 ...
- 用selenium模拟浏览器登录淘宝识别滑动验证码
用selenium模拟浏览器登录淘宝,使用账号密码的方式登录淘宝,但是在登录的时候遇到需要滑动验证,使用selenium模拟点击滑块,滑动验证码完成登录. 本文的代码现测可用.做个记录,方便以后查看. ...
- 利用深度学习识别滑动验证码缺口位置
做爬虫的同学肯定或多或少会为验证码苦恼过,在最初的时候,大部分验证码都是图形验证码.但是前几年「极验」验证码横空出世,行为验证码变得越来越流行,其中之一的形式便是滑块验证码. 滑块验证码是怎样的呢?如 ...
- 识别验证码模拟登录微博
前言:在微博进行模拟登录时需要点击验证码,使用网上打码平台来对验证码进行识别,完成登录. 1.模拟登录: 首先登录微博:https://passport.weibo.cn/signin/login 我 ...
最新文章
- Go 语言编程 — go-restful RESTful 框架
- 【解决方案】MTU现场能源发电机,点亮孤岛的文明之光
- 通过最简单的button控件,深入学习SAP UI5框架代码系列之零
- 在线生成横幅BANNER广告图网站源码
- Openfire开发配置,Openfire源码配置,OpenFire二次开发配置
- Linux下离线安装python项目的依赖包
- Java多线程学习四十三:
- ES6中对象新增方法
- Hyper-V 3.0服务器虚拟化:打造坚固的云
- vs2010 添加nupkg文件
- 《Nature-Inspired Metaheuristic Algorithms》——蝙蝠算法 Bat Algorithm
- 数字音频功放芯片型号与应用介绍
- php5.6.40 在 win10下安装全过程 ( 图文教程、附官方下载链接 )
- Office-004 Word插入脚注尾注
- 运行 CTS 测试命令
- Redisson框架官方介绍
- 冀教版小学三年级上册计算机教案,冀教版小学三年级上册信息技术教案三篇
- ipam:allocate ip 172.16.3.7 to node x.x.x.112 allocator failed, provided IP is already allocated
- 娱乐弹弹弹——程序猿眼中的女人
- PTA:最佳情侣身高差 (10分)(c++版)