day01 自动登录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)

猜你喜欢

转载自www.cnblogs.com/jiangbaoyabo/p/11117947.html