singularity-s0 / fudan_sports_autoreserve

复旦大学体育场馆自动预约 FDU Sports Auto Reserve
GNU General Public License v3.0
58 stars 46 forks source link

滑动验证码无法识别的问题 #4

Closed fangfengfen closed 1 year ago

fangfengfen commented 1 year ago

对于改版之后的界面,原来的程序仍然能顺利进行,获取信息的能力也未受到影响。我希望能够验证一下所学知识,如果之后有朋友想尝试请自行承担任何风险。 唯一有影响的是最后一步recongize_captcha(image);这里尝试用解决滑动验证码的selenium库和OpenCV库进行验证码处理,但是没法直接得到固定的图像地址,Network中显示的是“Provisional head”而不能请求“Full head”,所以倒在了第一步,attribute "src"又难以进行精确化删选; 剩下的步骤可以通过识别图像然后下载原图像(id="pintuImg")和拼图块; 之后再利用cv2进行图片处理,将RGB码读出后进行灰度处理,抽象出剩下的拼图块和原图像的边界线条(图片不清晰就用循环刷新); 根据二者之间的偏移量设置移动轨迹(变速),再加入拖拽的命令即可验证成功;

fangfengfen commented 1 year ago

还有就是网站建议更换为https://elife.fudan.edu.cn/public/front/index.htm网页版,以及后续的一些url都需要更新,因为若是以app结尾的网站容易出现验证码识别无法通过的情况

singularity-s0 commented 1 year ago

有现成的项目实现这种验证码的识别,例如 https://github.com/gtsigner/python-tecent-slider-crack

欢迎提交PR

durianmangosteen commented 1 year ago

想问一下作者,运行中出现 Skipping Available Option: 2023-05-26 08:00 并没有预约,是什么原因呢?有办法能解决吗

singularity-s0 commented 1 year ago

想问一下作者,运行中出现 Skipping Available Option: 2023-05-26 08:00 并没有预约,是什么原因呢?有办法能解决吗

因为该时间段并不是你设定想要预约的时间段,所以程序没有预约。如果确实想要预约这个时间段,写进配置即可。

durianmangosteen commented 1 year ago

在时间上我是这样设置的 DATE = "2023-05-26" TIME = "8:00" 如果需要预约需要怎么写进配置呢? 运行在最后出现了 Process finished with exit code 0 我尝试在edit configrations里改配置,但是没有解决,这个会有什么影响吗

singularity-s0 commented 1 year ago

在时间上我是这样设置的 DATE = "2023-05-26" TIME = "8:00" 如果需要预约需要怎么写进配置呢?

DATE和TIME采用的是精确字符串匹配,请确保标点符号半角/全角与目标完全一致,且没有多余的不可见字符(空格等)。如果仍然存在问题,请发起新issue。

Process finished with exit code 0

这个表明程序正常退出,没有影响。

cbshnrh commented 1 year ago

学校这个滑动验证码比较简单,直接识别图片凹槽的x轴偏移量,按比例转换一下,直接post即可,不用模拟滑动啥的

singularity-s0 commented 1 year ago

学校这个滑动验证码比较简单,直接识别图片凹槽的x轴偏移量,按比例转换一下,直接post即可,不用模拟滑动啥的

如果这样,适配难度就降低了很多。但是近期事情比较多,暂无时间适配新验证码,欢迎各位提交PR

singularity-s0 commented 1 year ago

PR #6 已经合并进入分支,如果仍有问题,请发起新的issue。

fangfengfen commented 1 year ago

谢谢大佬们的PR,之前一直在忙各种事情和新语言的学习,没时间打球了!