day01
我的随笔二
POST请求自动登录github。
请求URL:
请求方式
GET
请求头:
Cookies
user-agent:'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)
AppleWebKit/537.36(KHTML,likeGecko)Chrome/75.0.3770.100Safari/537.36'
请求体:
commit:Sign in
Utf8:"#
Authenticity_token:
Login_res= request.get(url=login_url,headers=login_header)
Print(login_res.text)
#解析提取token字符串
Authenticity_token = re.findall(
)
1.访问登入页面获取token随机字符串
请求URL:
请求方式:
GET
请求头:
COOKIES
user-agent:
2.解析并提取token字符串
#正则
importrequests
importre
login_url='https://github.com/login'
login_header={
'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)
Chrome/75.0.3770.100Safari/537.36'
}
login_res=requests.get(url=login_url,headers=login_header)
#print(login_res.text)
authenticity_token=re.findall(
'',
login_res.text,
re.S
)[0]
print(authenticity_token)
代码:
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/75.0.3770.100 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(login_res.cookies.get_dict()) # print(login_res.cookies) login_cookies = login_res.cookies.get_dict() # 2 开始登陆GitHub # 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/75.0.3770.100 Safari/537.36' } # 请求体信息 form_data = { "commit": "Sign in", "utf8": "√", "authenticity_token": authenticity_token, "Login": "****", "password": "*******", "webauthn-support": "supported" } session_res = requests.post( url=session_url, headers=session_headers, cookies=login_cookies, data=form_data) with open('github2.html', 'w', encoding='utf-8')as f: f.write(session_res.text)
结果: