python 模拟登陆github的示例


Posted in Python onDecember 04, 2020
# -*- 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的示例代码的详细内容,更多关于python 模拟登陆github的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python字符和字符值(ASCII或Unicode码值)转换方法
May 21 Python
使用python3.5仿微软记事本notepad
Jun 15 Python
python xml解析实例详解
Nov 14 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
Python中对数组集进行按行打乱shuffle的方法
Nov 08 Python
Python 数据库操作 SQLAlchemy的示例代码
Feb 18 Python
对Python中TKinter模块中的Label组件实例详解
Jun 14 Python
python excel转换csv代码实例
Aug 26 Python
python实现局域网内实时通信代码
Dec 22 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
Feb 12 Python
PYcharm 激活方法(推荐)
Mar 23 Python
Python web如何在IIS发布应用过程解析
May 27 Python
python中round函数保留两位小数的方法
Dec 04 #Python
python中pow函数用法及功能说明
Dec 04 #Python
python对输出的奇数偶数排序实例代码
Dec 04 #Python
python中entry用法讲解
Dec 04 #Python
利用python制作拼图小游戏的全过程
Dec 04 #Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
Dec 04 #Python
利用python如何实现猫捉老鼠小游戏
Dec 04 #Python
You might like
php 高效率写法 推荐
2010/02/21 PHP
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
js中哈希表的几种用法总结
2014/01/28 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
微信小程序页面渲染实现方法
2019/11/06 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
详解 Python 读写XML文件的实例
2017/08/02 Python
EM算法的python实现的方法步骤
2018/01/02 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
Python更新所有已安装包的操作
2020/02/13 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
行政人员岗位职责
2013/12/08 职场文书
最新会计专业求职信范文
2014/01/28 职场文书
党员承诺书怎么写
2014/05/20 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
委托书的写法
2014/09/16 职场文书
2014年销售工作总结
2014/12/01 职场文书
滴水洞导游词
2015/02/10 职场文书
爱国影片观后感
2015/06/18 职场文书
幼儿园教师管理制度
2015/08/05 职场文书