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删除过期文件的方法
May 29 Python
使用Python神器对付12306变态验证码
Jan 05 Python
python中map()与zip()操作方法
Feb 27 Python
python Django批量导入不重复数据
Mar 25 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
Aug 08 Python
django 发送手机验证码的示例代码
Apr 25 Python
python获取指定字符串中重复模式最高的字符串方法
Jun 29 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
Python3.5 Pandas模块之DataFrame用法实例分析
Apr 23 Python
解决springboot yml配置 logging.level 报错问题
Feb 21 Python
最新2019Pycharm安装教程 亲测
Feb 28 Python
python实现自动打卡的示例代码
Oct 10 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
?繁体转换的class
2006/10/09 PHP
php发送与接收流文件的方法
2015/02/11 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
js实现漫天星星效果
2017/01/19 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
浅析vue-router原理
2018/10/19 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
2020/02/05 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
中专生自我鉴定范文
2013/12/19 职场文书
大学运动会入场词
2014/02/22 职场文书
宿舍保安职务说明书
2014/02/25 职场文书
工程项目合作意向书
2015/05/08 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
建立共青团委员会的请示
2019/04/02 职场文书