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:xxxxxxx@qq.com # 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": "xxxxxx@qq.com", "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('xxxxxxx@qq.com' in r3.text) #返回true,测试成功