注意
本文章仅供学习交流使用
,如果你是铁粉你就会知道博主之前发布过一篇相关的文章,但是由于代码涉及到法律相关所以就隐藏了,两年的时间过去了,因为女朋友已经早早安排上了,所以就搁置了,本次不做代码分享,只是粗略的记录一下笔记,所以成品也不用来找我要。
回顾
两年前的九月份,当时技术不行,很多东西没有做到位,以至于有些导致封号部分没有做处理,下面是当时运行的截图:
这个脚本再后来完善过一段时间后便搁置了,至今没有弄成可视化操作界面,由于整个项目较于其他的抢苗软件来说比较良心,每天都有号源放出来,另外也没有任何验证码完全就是看谁手速快
分析
机制
黄牛越来越多,做脚本的有一大票,为了更公平,对方推出只有绑定医疗卡超30天的才可以进行预约,否则无效,也就是说你再怎么着也要提前一个月或者等一个月;另外对于平凡操作的用户也会给予封号大礼包
登录
之前抓包用的是安卓机,现在发现苹果抓包才是YYDS,由于接口鉴权都是通过cookie或者token来进行操作,登陆部分就显得没那么重要了,只用替换相关数据即可,由于信息敏感,我这里就放请求头的参数了
可以看到,接口请求用的是token,所以每次使用前替换即可,那就解决了绑定的问题,只需要让受益人根据操作再开抢前5分钟获得参数替换即可
def dlogin(): host = "https://*****/index/hospital/871958/depart" # 华山871958 params = { } headers = { "Host": "*****", 'Connection': 'keep-alive', "Accept": "application/json, text/plain, */*", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat", # "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", "Authorization": Authorization, "x-uuid": x_uuid, "Origin": "https://appv2.ynhdkc.com", "X-Requested-With": "com.tencent.mm", "Sec-Fetch-Site": "same-site", "Sec-Fetch-Mode": "cors", "Sec-Fetch-Dest": "empty", "Referer": "https://appv2.ynhdkc.com/", "Accept-Encoding": "gzip, deflate", "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7" } cookies = { "acw_tc": acw_tc } r = requests.get(host, data=params) print("函数dlogn\n",r.json()) # debug = r.json() code = r.json()['data']['dep_list'][0] msg = r.json()['code'] if msg != 1: print("获取不到信息请检查接口") else: # print(code) print("======继续执行!!!======") tmp_dep_id = str(code['dep_id']) print("获取===dep_id===hos_code") global dep_id,hos_code dep_id = code['dep_id'] hos_code=code['hos_code'] tmp_dep_name = str(code['dep_name']) tmp_hos_code = str(code['hos_code']) print("dep_id:", tmp_dep_id) print("dep_name:", tmp_dep_name) print("hos_code:", tmp_hos_code) print("======开始监控疫苗开抢状态======") dier(tmp_dep_id,tmp_dep_name,tmp_hos_code)
获取号源医院信息
所有的操作都需要指定医院,通过每一家去查询才知道开放的时间以及医院ID,因为再最后的接口模拟时需要这几个参数
当上方图片参数全部都拿到时,到点进行访问即可
获取可预约信息列表
封号处理
- 不要一个人绑定多个多次其他人的身份信息,就用他们提供的token
- 查询记录间隔时间不要太短,建议用代理IP,每几分钟就换
- 抢苗操作确定后,提前5分钟完成信息读取,等待倒计时结束最多请求两次接口即可,千万不要用for循环写死
之前用过芝麻IP
,感觉还不错,不会用的可以参考我这些:
《【Python】芝麻HTTP代理系列保姆级全套攻略(对接教程+自动领取每日IP+IP最优算法)》
《【Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》
《爬虫增加代理池:使用稳定第三方芝麻代理IP 教程(详细可用)》
后面的项目都用他家的代理,是因为每天都有免费额度,可以白嫖
总结
由于敏感词汇太多,文章仅仅简单记录下我的想法,方便在开发中进行梳理,大家不要私聊我,这个东西比较敏感,不想冒险回答。想自己弄的可以按照我上面的思路来,避免你在准备期间浪费太多账号和时间(我浪费了7个号一个wx号)