day01.2:自动登录github网站

原文链接: http://www.cnblogs.com/963989822cmd/p/11117951.html
# 1 获取tokrn随机字符串
'''
1.访问登录页面获取token随机字符串
    请求URL:
        https://github.com/login
    请求方式:
        get
    请求头:
    cookies
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.36 Safari/537.36
    
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; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.36 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页面的cookies信息
print(type(login_res.cookies))
print(type(login_res.cookies.get_dict()))
login_cookies = login_res.cookies.get_dict()
# 开始登录github
'''
POST请求自动登录github:
    请求url:
        https://github.com/
    请求方式:
        POST

    请求体:
        commit: Sign in
        utf8: ✓
        authenticity_token: QTBo+QKpAv2bb81u0dg+A3UUm4T9su2R2UqqqDROfKPE+c5aNH2UCCkmFeDe0o3fZpw9xOzfU0MffS2J+lK0Ow==
        login: cmd***
        password:**********
        webauthn-support: supported
'''
# session登录url
session_url = 'https://github.com/session'

# 请求头信息
session_headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.36 Safari/537.36'}

# 请求体信息
from_data = {
        "commit": "Sign in",
        "utf8":  "",
        "authenticity_token": authenticity_token,
        "login": "cmd***",
        "password": "***********",
        "webauthn-support": "supported"
}
session_res = requests.post(url=session_url,
                            headers=session_headers,
                            cookies=login_cookies,
                            data=from_data)
with open('github.html','w',encoding='utf-8') as f:
    f.write(session_res.text)

转载于:https://www.cnblogs.com/963989822cmd/p/11117951.html

猜你喜欢

转载自blog.csdn.net/weixin_30391339/article/details/94941229