• day01.2 自动登录github


    # 1、获取token随机字符串
    """
    1、访问登录界面获取token随机字符串
        请求url:
        
        请求方式:
            get
        请求头:
            cookies
            User_Agent:
    2、解析并提取token字符串
    #正则
    <input type="hidden" name="authenticity_token" value="(.*?)" />
    """
    import requests
    import re
    
    login_url = 'https://github.com/login'
    # login页面的请求头信息
    login_header = {
        'User_Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
    }
    login_res = requests.get(url=login_url, headers=login_header)
    # print(login_res.text)
    
    # 解析提取token字符串
    authenticity_token = re.findall(
        '<input type="hidden" name="authenticity_token" value="(.*?)" />',
        login_res.text,
        re.S
    )[0]
    print(authenticity_token)
    # 获取login页面的cookie信息
    print(type(login_res.cookies))
    print(type(login_res.cookies.get_dict()))
    login_cookies = login_res.cookies.get_dict()
    
    # 2、开始登陆github
    """"
    post 请求自动登录github:
        请求url:
            http://github.com/session
        请求方式:
            post
        请求头:
            Cookie
            User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
        请求体:
            commit: Sign in
            utf8: ✓
            authenticity_token: MBlkk/dibjj0nhvrHc02Q2hK5xP3gKg/TaaaAObXGYqsL4Hl8OubDPzrgF9cTWNNp6cxrd0WmmUl77yur0aY/A==
            login: jiangbaoyabo
            password: ************
            webauthn-support: supported
    
    """
    # session登录url
    session_url = 'https://github.com/session'
    session_headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
         }
    # 请求体信息
    form_data = {
        "commit": "Sign in",
        "utf8": "",
        "authenticity_token": authenticity_token,
        "login": "jiangbaoyabo",
        "password": "***********",
        "webauthn-support": "supported"
    }
    session_res = requests.post(url=session_url,
                                headers=session_headers,
                                cookies=login_cookies,
                                data=form_data)
    with open('github.html','w',encoding='utf-8')as f:
        f.write(session_res.text)
  • 相关阅读:
    圣战 [奇环, 树上差分]
    花火之声不闻于耳 [线段树]
    SP2878 KNIGHTS
    P5300 [GXOI/GZOI2019]与或和 [单调栈]
    Speike [线段树, 动态规划]
    Jerry [动态规划]
    JSON对象
    正则书写
    flex布局实践
    数组对象的深拷贝与浅拷贝
  • 原文地址:https://www.cnblogs.com/jiangbaoyabo/p/11117947.html
Copyright © 2020-2023  润新知