# 模拟登陆成功 import requests import time import json import base64 import sys sys.path.append('../') import src.user.account_photo as account def get_time(): # 毫秒妙级时间戳 13位数字 now_time = str(int(time.time()*1000)) return now_time def get_photo_url(url): return url + get_time() def base64_api(img): # 返回账号密码 uname,pwd = account.back_account_password() with open(img, 'rb') as f: base64_data = base64.b64encode(f.read()) b64 = base64_data.decode() data = {"username": uname, "password": pwd, "typeid": 2, "image": b64} result = json.loads(requests.post("http://api.ttshitu.com/predict", json=data).text) if result['success']: return result["data"]["result"] else: #!!!!!!!注意:返回 人工不足等 错误情况 请加逻辑处理防止脚本卡死 继续重新 识别 return result["message"] return "" def login_fume_web(): # 初始化session session = requests.session() session.headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36", } # 请求验证码地址 # 构造时间戳 # 拼接url # 识别验证码 url_photo = get_photo_url('http://xhhb.senzly.cn/servlet/Vcode_new.serv?t=') response = session.get(url_photo, verify=False) # 图片为二进制数据 image_data = response.content with open('Vcode.jpg',mode='wb') as f: f.write(image_data) # 验证码结果 Vcode_result = base64_api('Vcode.jpg') # 构造表单,发送表单 # 两次请求,保证是同一次发的 # cookeiJar = response.cookies # cookies = cookeiJar.get_dict() # print(cookies) playload = { "account": "9SUBjEeNy7nFMzk123", "password": "6SUBIyusanb170e13a221a4cb58c66876006488504", "vcode": Vcode_result } url_jump = 'http://xhhb.senzly.cn/cusLogin.php' session.post(url_jump,data=playload,verify=False) # 如何设置session的Cookie cookieJar = session.cookies cookies = cookieJar.get_dict() print(cookies) return session # 个人验证