riku
2024-01-10 a9e8e27e0503552b7b2a99c821da732175d4f071
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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