Day01---Post请求自动登录
使用例子:GitHub
1. 获取token字符串
'''
1.访问登录页面获取token字符串
请求URL:
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字符串
# 正则
<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; 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)
解析提取token字符串
authenticity_token=re.findall( '<input type="hidden" name="authenticity_token" value="(.*?)" />', login_res.text, re.S)[0] print(authenticity_token)
获取login页面的cookie信息
login_cookies=login_res.cookies.get_dict()
2.开始登录GitHub
'''
POST请求自动登录github
请求URL:
http://github.com/session
请求方式:
POST
请求头:
Cookie
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
请求体:
commit: Sign in
utf8: ✓
authenticity_token: kMmnEqkNFgd8sC3SSVxETx9FL/MnXo9XEarleXKRZPdiKSMjfzZJfvhpoZ7DpXmEDjTv085jUwt7Qss9lBTiyw==
login: ******
password: ******
webauthn-support: supported
'''
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":authenticity_token, "login":"504377637@qq.com", "password": "yupeiduo23", "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)
# 结束