一、Github登陆
1. 分析
- 请求URL
https://github.com/session - 请求方式
POST - 请求头
Cookie
User-Agent - 请求体
utf8
, authenticity_token
, login
, password
, webauthn-support
, commit
2. 获取(Token)
- 请求URL
https://github.com/login - 请求方式
GET - 请求头
Cookie
User-Agent
3. 代码
import re
import requests
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',
}
def get_page(urls):
response = requests.get(urls, headers=headers)
return response
form_data = {
"utf8": "✓",
"authenticity_token": 'token',
"login": "******",
"password": "******",
"webauthn-support": "unknown",
"commit": "Sign in"
}
if __name__ == '__main__':
login_url = 'https://github.com/login'
login_res = get_page(login_url)
login_cookie = login_res.cookies.get_dict()
re_str = '<input type="hidden" name="authenticity_token" value="(.*?)" />'
token = re.findall(re_str, login_res.text, re.S)
form_data['authenticity_token'] = token[0]
session_url = 'https://github.com/session'
session_res = requests.post(session_url, headers=headers, cookies=login_cookie, data=form_data)
with open("github.html", 'w', encoding='utf-8') as f:
f.write(session_res.text)
print(session_res.status_code)