1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# -*- coding: utf-8 -*- # @Author: CriseLYJ # @Date: 2020-08-14 12:13:11 import re import requests class GithubLogin( object ): def __init__( self , email, password): # 初始化信息 self .headers = { 'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36' , 'Referer' : 'https://github.com/' , 'Host' : 'github.com' } self .session = requests.Session() self .login_url = 'https://github.com/login' self .post_url = 'https://github.com/session' self .email = email self .password = password def login_GitHub( self ): # 登录入口 post_data = { 'commit' : 'Sign in' , 'utf8' : '✓' , 'authenticity_token' : self .get_token(), 'login' : self .email, 'password' : self .password } resp = self .session.post( self .post_url, data = post_data, headers = self .headers) print ( 'StatusCode:' , resp.status_code) if resp.status_code ! = 200 : print ( 'Login Fail' ) match = re.search(r '"user-login" content="(.*?)"' , resp.text) user_name = match.group( 1 ) print ( 'UserName:' , user_name) # Get login token def get_token( self ): response = self .session.get( self .login_url, headers = self .headers) if response.status_code ! = 200 : print ( 'Get token fail' ) return None match = re.search( r 'name="authenticity_token" value="(.*?)"' , response.text) if not match: print ( 'Get Token Fail' ) return None return match.group( 1 ) if __name__ = = '__main__' : email = input ( 'Account:' ) password = input ( 'Password:' ) login = GithubLogin(email, password) login.login_GitHub() |
登录效果
以上就是python 模拟登陆github的示例代码的详细内容,更多关于python 模拟登陆github的资料请关注服务器之家其它相关文章!
原文链接:https://github.com/Kr1s77/awesome-python-login-model