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)

# 结束


posted @ 2019-07-01 16:41  YoungY23  阅读(231)  评论(0编辑  收藏  举报