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/70.0.3538.25 Safari/537.36 Core/1.70.3704.400 QQBrowser/10.4.3587.400' } 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信息
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; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36' }
# 请求体信息
''' commit: Sign in utf8: ✓ authenticity_token:authenticity_token login: **** password": **** webauthn-support: supported ''' 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('github.html','w',encoding='utf-8') as f: f.write(session_res.text)