1. 程式人生 > >github免密登陸

github免密登陸

headers bsp then session htm http log referer sts

import requests
import re

# 一:先獲取登陸頁面,拿到authenticity_token:
# 1 請求的url:https://github.com/login
# 2 請求方法:GET
# 3 請求頭:
#    User-Agent
r1 = requests.get(https://github.com/login,
                  headers={
                      User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
, }, ) authenticity_token = re.findall(name="authenticity_token".*?value="(.*?)", r1.text, re.S)[0] r1_cookies=r1.cookies.get_dict() print(authenticity_token) print(r1_cookies) # 二:提交表單數據完成登陸 # 1 請求的url:https://github.com/session # 2 請求方法:POST # 3 請求頭: # Referer:https://github.com/
# User-Agent # 4 請求體 # commit:Sign in # utf8:? # authenticity_token:pFLyO9choCgUd6mm1AMP7BoeEQ613TRDe49MBREZ7EU7MKM7IELFgmyGfcKXS0hsaIiGJ8YlkTD5nwwV4tebig== # login:[email protected] # password:xxxxxxx r2 = requests.post(https://github.com/session, headers={
"Referer": "https://github.com/", User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36, }, cookies=r1_cookies, data={ "commit": "Sign in", utf8: "?", "authenticity_token": authenticity_token, "login": "[email protected]", "password": "xxxxxxxx", }, allow_redirects=False ) # print(r2.status_code) # print(r2.history) cookies=r2.cookies.get_dict() r3=requests.get(https://github.com/settings/emails, headers={ "Referer": "https://github.com/", User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36, }, cookies=cookies) print([email protected] in r3.text) #返回true,測試成功

github免密登陸