day01

我的随笔二

POST请求自动登录github。

请求URL:

http://github.com/session

请求方式

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:

https://github.com/login

请求方式:

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)

结果:

posted @ 2019-07-01 18:25  夜殇离歌  阅读(79)  评论(0编辑  收藏  举报