github免密登陆
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,测试成功
版权声明:本文为52-qq原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。