一个加速器,新用户免费送1一个小时,注册有滑块,秒了,其他没啥,都是固定,或者uuid秒了,不用特地改
import requests,time,base64
import cv2
import numpy as np
def gen():
url='http://api.xyunjiasu.com/captchas/slider/gen'
result=requests.get(url).json()
b_img=result['body']['captchaResponse']['captcha']['backgroundImage'].split(',')[1]
s_img=result['body']['captchaResponse']['captcha']['sliderImage'].split(',')[1]
sid=result['body']['captchaResponse']['id']
with open('./img/b_img.png','wb') as f:
f.write(base64.b64decode(b_img))
with open('./img/s_img.png','wb') as f:
f.write(base64.b64decode(s_img))
return sid
def simulate_slider_trajectory(start_pos, end_pos, steps, duration):
# 起始和结束坐标
start_x, start_y = start_pos
end_x, end_y = end_pos
# 总步数和每一步对应的时间间隔
time_interval = duration / steps
# 计算每次移动的距离
dx = (end_x - start_x) / steps
dy = (end_y - start_y) / steps
trajectory = []
for i in range(steps + 1): # 包含起点和终点
x = start_x + i * dx
y = start_y + i * dy
t = i * time_interval
trajectory.append({'x':round(x), 'y':round(y),'t': round(t*1000)})
return trajectory
def _tran_canny(image):
"""消除噪声"""
image = cv2.GaussianBlur(image, (3, 3), 0)
return cv2.Canny(image, 50, 150)
def detect_displacement():
"""detect displacement"""
# # 参数0是灰度模式
# "./img/b_img.png", "./img/s_img.png"
image = cv2.imread("./img/s_img.png", 0)
template = cv2.imread("./img/b_img.png", 0)
# 寻找最佳匹配
res = cv2.matchTemplate(_tran_canny(image), _tran_canny(template), cv2.TM_CCOEFF_NORMED)
# 最小值,最大值,并得到最小值, 最大值的索引
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
top_left = max_loc[0] # 横坐标
return top_left
def login():
pass
def verify(sid,x):
track =track = simulate_slider_trajectory([0,0], [x,20], 80, 1)
url='http://api.xyunjiasu.com/captchas/slider/check'
data={"header":{"channelCode":"gw","channelName":"gw","proxyNetBarId":"","appId":3,"versionCode":1,"versionName":"1.0.0","apiVersion":"1.0","msgId":"a9a4ba53-1e31-48ba-8ebc-3108409e1f19","token":"","dk":"ac2d9f0925b03b2fa47b934c8b4bd3b5","sendTime":int(time.time()*1000),"deviceType":3,"imei":"865304048714552","oaid":"ff3fcf86-b7ff-e639-e5fe-ffffeda7a281","uuid":"undefined","idfa":"","openudid":"","deviceModel":"","systemType":"","isConfirm":0,"webVersionName":"0.0.0","distinctId":""},"body":{"imageCaptchaTrack":{"bgImageWidth":x+110,"bgImageHeight":205,"sliderImageWidth":63,"sliderImageHeight":205,"startSlidingTime":"2024-02-19T12:19:54.471Z","entSlidingTime":"2024-02-19T12:19:55.395Z","trackList":track,"id":sid}}}
result=requests.post(url,params={'id':sid},json=data).json()
print(result)
def sms(sid,phone):
url='http://api.xyunjiasu.com/sendMessage/sendSms'
data={"header":{"channelCode":"gw","channelName":"gw","proxyNetBarId":"","appId":3,"versionCode":1,"versionName":"1.0.0","apiVersion":"1.0","msgId":"11d82337-ecfb-485f-8c0d-08da1b86d9cc","token":"","dk":"ac2d9f0925b03b2fa47b934c8b4bd3b5","sendTime":int(time.time()*1000),"deviceType":3,"imei":"865304048714554","oaid":"ff3fcf86-b7ff-e639-e5fe-ffffeda7a281","uuid":"undefined","idfa":"","openudid":"","deviceModel":"","systemType":"","isConfirm":0,"webVersionName":"0.0.0","distinctId":""},"body":{"account":phone,"codeType":1,"sliderCaptchaId":sid}}
result=requests.post(url,json=data).json()
print(result)
def main():
sid=gen()
x=detect_displacement()
verify(sid,x)
sms(sid,"17628828009")
for i in range(10):
main()
http://api.xyunjiasu.com/captchas/slider/gen
http://api.xyunjiasu.com/captchas/slider/check?id=9e6c216f4ee74b6f8e6a239a38bd507d
{"header":{"channelCode":"gw","channelName":"gw","proxyNetBarId":"","appId":3,"versionCode":1,"versionName":"1.0.0","apiVersion":"1.0","msgId":"a9a4ba53-1e31-48ba-8ebc-3108409e1f19","token":"","dk":"ac2d9f0925b03b2fa47b934c8b4bd3b5","sendTime":1708345195396,"deviceType":3,"imei":"865304048714554","oaid":"ff3fcf86-b7ff-e639-e5fe-ffffeda7a281","uuid":"undefined","idfa":"","openudid":"","deviceModel":"","systemType":"","isConfirm":0,"webVersionName":"0.0.0","distinctId":""},"body":{"imageCaptchaTrack":{"bgImageWidth":336,"bgImageHeight":205,"sliderImageWidth":63,"sliderImageHeight":205,"startSlidingTime":"2024-02-19T12:19:54.471Z","entSlidingTime":"2024-02-19T12:19:55.395Z","trackList":[{"x":1,"y":1,"t":8},{"x":2,"y":1,"t":14},{"x":3,"y":1,"t":21},{"x":4,"y":1,"t":27},{"x":5,"y":1,"t":32},{"x":7,"y":1,"t":38},{"x":8,"y":1,"t":45},{"x":9,"y":2,"t":51},{"x":12,"y":2,"t":57},{"x":13,"y":3,"t":63},{"x":16,"y":3,"t":69},{"x":19,"y":3,"t":75},{"x":20,"y":3,"t":81},{"x":24,"y":3,"t":88},{"x":27,"y":4,"t":93},{"x":29,"y":4,"t":99},{"x":32,"y":4,"t":105},{"x":35,"y":4,"t":112},{"x":37,"y":4,"t":117},{"x":42,"y":5,"t":124},{"x":47,"y":5,"t":130},{"x":52,"y":5,"t":136},{"x":57,"y":5,"t":142},{"x":63,"y":5,"t":148},{"x":68,"y":6,"t":153},{"x":75,"y":7,"t":159},{"x":80,"y":7,"t":166},{"x":85,"y":7,"t":172},{"x":91,"y":8,"t":178},{"x":98,"y":8,"t":185},{"x":101,"y":9,"t":190},{"x":109,"y":9,"t":196},{"x":116,"y":9,"t":202},{"x":122,"y":9,"t":208},{"x":131,"y":9,"t":215},{"x":135,"y":10,"t":220},{"x":141,"y":10,"t":226},{"x":147,"y":11,"t":233},{"x":151,"y":11,"t":239},{"x":154,"y":11,"t":245},{"x":157,"y":11,"t":250},{"x":160,"y":11,"t":257},{"x":163,"y":11,"t":263},{"x":165,"y":11,"t":269},{"x":169,"y":11,"t":276},{"x":171,"y":11,"t":281},{"x":175,"y":12,"t":287},{"x":179,"y":12,"t":293},{"x":184,"y":12,"t":299},{"x":189,"y":12,"t":305},{"x":194,"y":12,"t":311},{"x":197,"y":12,"t":317},{"x":203,"y":13,"t":324},{"x":206,"y":13,"t":329},{"x":210,"y":13,"t":336},{"x":213,"y":13,"t":341},{"x":215,"y":13,"t":347},{"x":217,"y":13,"t":354},{"x":217,"y":13,"t":360},{"x":218,"y":13,"t":366},{"x":219,"y":13,"t":372},{"x":219,"y":13,"t":543},{"x":220,"y":13,"t":548},{"x":221,"y":13,"t":555},{"x":222,"y":13,"t":560},{"x":223,"y":14,"t":566},{"x":225,"y":15,"t":572},{"x":225,"y":15,"t":578},{"x":227,"y":15,"t":584},{"x":227,"y":15,"t":590},{"x":228,"y":15,"t":597},{"x":229,"y":15,"t":608},{"x":229,"y":16,"t":614},{"x":230,"y":16,"t":626},{"x":231,"y":16,"t":651},{"x":231,"y":17,"t":656},{"x":231,"y":17,"t":663},{"x":232,"y":17,"t":669},{"x":232,"y":17,"t":688}],"id":"9e6c216f4ee74b6f8e6a239a38bd507d"}}}
http://api.xyunjiasu.com/sendMessage/sendSms
{"header":{"channelCode":"gw","channelName":"gw","proxyNetBarId":"","appId":3,"versionCode":1,"versionName":"1.0.0","apiVersion":"1.0","msgId":"11d82337-ecfb-485f-8c0d-08da1b86d9cc","token":"","dk":"ac2d9f0925b03b2fa47b934c8b4bd3b5","sendTime":1708345195496,"deviceType":3,"imei":"865304048714554","oaid":"ff3fcf86-b7ff-e639-e5fe-ffffeda7a281","uuid":"undefined","idfa":"","openudid":"","deviceModel":"","systemType":"","isConfirm":0,"webVersionName":"0.0.0","distinctId":""},"body":{"account":"17628818007","codeType":1,"sliderCaptchaId":"9e6c216f4ee74b6f8e6a239a38bd507d"}}
http://api.xyunjiasu.com/user/login
{"header":{"channelCode":"gw","channelName":"gw","proxyNetBarId":"","appId":3,"versionCode":1,"versionName":"1.0.0","apiVersion":"1.0","msgId":"4ec87158-0984-4976-a3f7-44819fc02cea","token":"","dk":"ac2d9f0925b03b2fa47b934c8b4bd3b5","sendTime":1708345283287,"deviceType":3,"imei":"865304048714554","oaid":"ff3fcf86-b7ff-e639-e5fe-ffffeda7a281","uuid":"undefined","idfa":"","openudid":"","deviceModel":"","systemType":"","isConfirm":0,"webVersionName":"0.0.0","distinctId":""},"body":{"account":"17628818007","yzm":"3005","loginType":1,"codeType":1,"autoLogin":true}}