脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python实现腾讯滑块验证码识别

python实现腾讯滑块验证码识别

2021-10-21 09:40Godtoy Python

这篇文章主要介绍了python如何实现腾讯滑块验证码识别,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下

腾讯滑块验证码识别,识别凹槽的x轴位置,mock滑块的加速度。该项目公开API,提供识别和加速度模拟部分,第二部分模拟滑动进行识别返回数据请求

项目地址:https://github.com/zhaojunlike/python-tecent-slider-crack

安装python环境

参考:https://janikarhunen.fi/how-to-install-python-3-6-1-on-centos-7

?
1
2
3
4
5
sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum install python36u
python3.6 -V
sudo yum install python36u-pip
sudo yum install python36u-devel

创建环境 Creating a virtualenv

?
1
2
3
4
5
python3.6 -m venv venv
. venv/bin/activate
pip install [package_name]
# 安装依赖
pip install -r requirements.txt

daemonize 运行

?
1
2
3
4
5
6
7
8
9
10
# 参考 https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uswgi-and-nginx-on-ubuntu-18-04
# Install the latest stable release:
pip install uwsgi
# ... or if you want to install the latest LTS (long term support) release,
pip install https://projects.unbit.it/downloads/uwsgi-lts.tar.gz
 
# 创建ln
cp captcha.service /etc/systemd/system/captcha.service
systemctl enable captcha.service
systemctl start captcha.service
?
1
2
3
4
uwsgi --ini /usr/local/nginx/html/myblog/uwsgiconfig.ini
 
#后台运行
uwsgi --ini /usr/local/nginx/html/myblog/uwsgiconfig.ini --daemonize /usr/local/nginx/html/myblog/myblog.out

nginx做代理

?
1
2
3
4
5
location /tx/ {
    add_header Access-Control-Allow-Origin *;
    include        uwsgi_params;
    uwsgi_pass     127.0.0.1:8008;
}

访问api

请求图片识别和加速度模拟

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
http://127.0.0.1:5000/tx/image
 
POST /tx/image HTTP/1.1
Host:host
Content-Type: application/json
Accept: */*
Cache-Control: no-cache
Accept-Encoding: gzip, deflate
Content-Length: 1055
Connection: keep-alive
cache-control: no-cache
 
{
    "url": "图片的地址"
}
 
返回数据
 
{
    "data": {
        "list": [],//模拟的点
        "url": "",//图片地址
        "x": 515,// x轴的偏移量
    },
    "message": "解析成功"
}

模拟浏览器移动

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const slider = {width: 680, point: 0, move: 0, steps: 0, posX: 0};//原本的高度
//开始计算移动的距离
slider.point = bgSize.width / slider.width * x;
slider.move = handle.x + slider.point - 5;
slider.steps = Math.random() * 100 / 30 + 100;
slider.posX = handle.x + handle.width / 2;
 
logger.info(`开始识别和移动滑块`, slider);
 
//滑块的位置
await page.mouse.move(slider.posX, handle.y + handle.height / 3, {steps: slider.steps});
await page.mouse.down();
let val = handle.x;
for (let i = 0; i < traces.length; i++) {
    val += bgSize.width / slider.width * (traces[i]);//缩放距离
    slider.move = val;
    if (val <= slider.posX) continue;
    await page.mouse.move(slider.move, handle.y + handle.height / 2 + 5);
}
await page.waitFor(100);
await page.mouse.up();

 

验证码识别成功后悔返回验证识别结果的Ticket

python实现腾讯滑块验证码识别

协议

授权协议:只允许研究、学习目的的分享、使用、修改,不允许任何商业用途。

原文地址:https://segmentfault.com/a/1190000020618430

以上就是python实现腾讯滑块验证码识别的详细内容,更多关于python 滑块验证码识别的资料请关注服务器之家其它相关文章!

原文链接:https://github.com/godtoy/python-tecent-slider-crack

延伸 · 阅读

精彩推荐