本文已参加「新人创造礼」活动, 一同开启掘金创造之路。
哈哈,本来想跟一篇谷歌介绍,想到内容较多一直没事搞,今日提上日程这周跟上,先来一篇模拟登录把,也是比较经典的案例,直奔主题,网站地址

1.老一套先清cookies再抓包




- 先做恳求获取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
- 走两步


声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。