小猿口算, 采用抓包方式获取题目和答案, 通过 adb 模拟滑动操作,比机器视觉识别更快更准确!
https://github.com/user-attachments/assets/e9ccfa25-4bdd-4b43-855c-af4a045dcb00
代码有点屎山哈哈哈哈,抛砖引玉, 有问题欢迎提 issue :bug:
def str_to_xy(str):
match str:
case "1":
return [[1480, 1050], [1440, 1470]]
case "2":
return [[1255, 1100], [1700, 1100], [1255, 1470], [1700, 1470]]
case "3":
return [[1344, 1040], [1600, 1200], [1270, 1323], [1635, 1379], [1249, 1588]]
case "4":
return [[1716, 1274],[1245,1296],[1450,1030],[1450,1466]]
case "5":
return [[1558,1020],[1290,1211],[160,1348],[1300.1472]]
case "6":
return [[1533,1027],[1265,1428],[1663,1439]]
case ">":
return [[[1350, 1080], [1545, 1172], [1295, 1297]]]
case "<":
return [[[1578,1058],[1308,1231],[1560,1292]]]
case "=":
return [[[1284, 1122], [1700, 1122]],[[1280, 1300], [1700, 1300]]]
[!TIP] 根据设备分辨率修改坐标(同元组内坐标连续滑动)
# 查看当前分辨率
adb shell wm size
#还原默认分辨率
adb shell wm size reset
# 更改分辨率为 1800x2880
adb shell wm size 1800x2880
def answer_write(answer):
for i in range(len(answer)):
number_command.swipe_screen(answer[i])
# time.sleep(0.16)
time.sleep(0.3)
根据所需更改每个题目间隔时间
pip install -r requirements.txt
采用 trust me already 禁用 app ssl
adb devices
WIFI 设置代理为电脑 ip 和端口(8080)
python main.py -H <host> -P <port>
例如:
python main.py -H 0.0.0.0 -P 8080