腾讯滑块验证码识别,识别凹槽的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
协议
授权协议:只允许研究、学习目的的分享、使用、修改,不允许任何商业用途。
原文地址:https://segmentfault.com/a/1190000020618430
以上就是python实现腾讯滑块验证码识别的详细内容,更多关于python 滑块验证码识别的资料请关注服务器之家其它相关文章!
原文链接:https://github.com/godtoy/python-tecent-slider-crack