import re from .base_request import my_Request from utils.log_utils import LogUtils from config.config import Config def login() -> bool: """金山扬尘在线监测网站登录""" _config = Config() account, password, cookies = _config.get_login_info() if not cookies == None: my_Request.set_cookie(cookies) _config.update_cookie(cookies) LogUtils.info(f'使用了缓存的cookie:{cookies}') return True # 请求原始登陆页面 # 获取token # 获取跳转的url # 正则表达式提取token 和url payload = {'a': 'ZHp6d3B0', 'allParams': 'cC+QXA6lzRK6JXTjS+yCpCXg2UJDTgNW9viPDZ0O0tQMarNhIeFaCk8Jbsicxv7ZKLlX3J80r8ewAT12zsRsk0e3XdHIiSRrJG5bDrQtqQ8T+bazgbxAdeC3jEQDG3k5pFyPUONlyEh1OU2kwKHI8V7mp7RfZpz1DeYDoAtVFcX7bh3fzQs2wEKLjeggMj7fahAX4U3s9JfNl2DQCSGQX4q7iyKnDhf4ok8u8yuv8q3XkvP3k1/vqpZRmQ1v16/KAsKPgDXtrbBq9q8yjNaMOC2Jz1FxBundI7Sip/6J6bOUNHikbGGueW+V5Q9462Dt30IYmjVXupSnK0FfUqxuV3JcZgP6ZPTs'} url_login = my_Request.login_url + '/portal/login.jsp' res = my_Request.post(url_login, payload) if res == False: return False res2 = res.content.decode('utf-8', errors='ignore') token = re.findall('name="allParams" value="(.*?)"/>', res2)[0] url_jump = re.findall('action="..(.*?)"', res2)[0] # 请求跳转的url # 构造跳转的url # 构造表单 # 发生请求 url = my_Request.login_url + url_jump payload = { "allParams": token, "a": "ZHp6d3B0", "needLogin": "true", "user.account": account, "user.password": password, "timestamp": '' } res3 = my_Request.post(url, payload) if res3 == False: # LogUtils.error(f'登陆失败!') return False else: ck = my_Request.get_session().cookies c = dict(ck) s = "" for k in c.keys(): s += f"{k}={c[k]};" s = s[:-1] _config.update_cookie(s) LogUtils.info(f'获取到Cookie:{s}') return True