本文已参加「新人创造礼」活动, 一同开启掘金创造之路。

哈哈,本来想跟一篇谷歌介绍,想到内容较多一直没事搞,今日提上日程这周跟上,先来一篇模拟登录把,也是比较经典的案例,直奔主题,网站地址

浅更一篇模拟登录

1.老一套先清cookies再抓包

浅更一篇模拟登录
2.可见这里有图片验证码,首先想到的便是sess状态坚持恳求,再看接口也是在初次恳求之后回来了cookies。那么可以简略做一下构思了,先看接口账号密码,验证码是否加密处理,再看接口是否含有其他加密参数,ok先做一次假恳求

浅更一篇模拟登录
3.可见这里有一个token为加密参数目测是一个AES加密,账号密码验证码都没有做加密处理。现在的问题便是找到token 仍是先查一下这个参数,可以发现在初次恳求回来cookies的同时在源码中给我们回来这个token的值,这可就省大事了

浅更一篇模拟登录
4.ok,参数搞定了还需要找到验证码图片接口用来……很简略,点验证码再生成一张就ok了

浅更一篇模拟登录
可见这个恳求携带了一个时间戳,目测没啥软用 5.ok,到这里逻辑现已很清楚了

  • 先做恳求获取cookies和token
sess.headers = {
    'authority': 'webvpn.cams.cn',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'accept-language': 'zh-CN,zh;q=0.9',
    'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',  #
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36',
}
res = sess.get('https://webvpn.cams.cn/users/sign_in')
res = etree.HTML(res.text)
token = res.xpath("//meta[@name='csrf-token']/@content")[0]
  • 再获取验证码+ocr识别
res = sess.get('https://webvpn.cams.cn/rucaptcha/')
with open('ValidCodeImg.jpg', 'wb') as w:  # 保存图片
    w.write(res.content)
with open('ValidCodeImg.jpg', 'rb') as r:
    img = r.read()
ocr = ddddocr.DdddOcr()
code = ocr.classification(img_bytes=img)
print(code,flush=True)
  • ok,现在是要啥有啥了,直接拼参恳求
data = {
    'utf8': '✓',
    'authenticity_token': '{}'.format(token),
    'user[login]': f'{账号}',
    'user[password]': f'{密码}',
    'user[dymatice_code]': 'unknown',
    'user[otp_with_capcha]': 'false',
    '_rucaptcha': '{}'.format(code),
    'commit': '登录 Login',
}
res = sess.post('https://webvpn.cams.cn/users/sign_in', data=data)
start = res.status_code
  • 走两步

浅更一篇模拟登录

浅更一篇模拟登录