'''POST请求自动登录GitHub:
一、请求rul
https://github.com/session
二、请求方式
POST
三.请求头
cookies
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
四.请求体
from data
commit: Sign in
utf8: ✓
authenticity_token: LVyIb9FUxiI6XMain4PXzgOjKn9DzYzqdCwMvosVn+/Cht8LVgCuKjc7fbNfk5TiXf4W+6y56GmRnu1A4T0VIQ==
login: sjdkjw
password: 1562132
webauthn-support: supported'''
#获取token随机字符串
'''1.访问登录页面获取token随机字符串
一、请求rul
https://github.com/login
二、请求方式
GET
三.请求头
cookies
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
2.解析并提取token字符串
#正则
'''
importrequestsimportre
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/75.0.3770.100 Safari/537.36'}
login_res= requests.get(url=login_url,headers=login_header)#print(login_res.text)#解析提取token字符串
authenicity_token =re.findall('',
login_res.text,re.S
)[0]print(authenicity_token)#2.开始登录github
'''POST请求自动登录GitHub:
一、请求rul
https://github.com/session
二、请求方式
POST
三.请求头
cookies
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
四.请求体
from data
commit: Sign in
utf8: ✓
authenticity_token: LVyIb9FUxiI6XMain4PXzgOjKn9DzYzqdCwMvosVn+/Cht8LVgCuKjc7fbNfk5TiXf4W+6y56GmRnu1A4T0VIQ==
login: ****
password: *****
webauthn-support: supported'''
#获取login页面的cookies信息
login_cookies =login_res.cookies.get_dict()#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/75.0.3770.100 Safari/537.36'}#请求体信息
form_data ={"commit": "Sign in","utf8": "✓","authenticity_token": "authenicity_token","login": "****","password": "*****","webauthn-support": "supported"}
session_res= requests.post(url=session_url,
headers=session_headers,
cookies=login_cookies,
data=form_data
)
with open('github1.html','w',encoding='utf-8') as f:
f.write(session_res.text)