github免密登陸
阿新 • • 發佈:2018-01-16
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免密登陸