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 运算符 供重载参考
Jun 11 Python
python k-近邻算法实例分享
Jun 11 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
python3 flask实现文件上传功能
Mar 20 Python
python: 自动安装缺失库文件的方法
Oct 22 Python
Python实现常见的回文字符串算法
Nov 14 Python
Python何时应该使用Lambda函数
Jul 02 Python
Python使用正则表达式分割字符串的实现方法
Jul 16 Python
python实现图像拼接
Mar 05 Python
python 数据类型强制转换的总结
Jan 25 Python
Python 批量下载阴阳师网站壁纸
May 19 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/05/26 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
js类式继承与原型式继承详解
2016/04/07 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
2017/02/14 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
Python牛刀小试密码爆破
2011/02/03 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
Django实现一对多表模型的跨表查询方法
2018/12/18 Python
python实现两张图片的像素融合
2019/02/23 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
职业生涯规划书的格式
2013/12/29 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
运动会拉拉队口号
2014/06/09 职场文书
个人违纪检讨书
2014/09/15 职场文书
电力工程合作意向书
2015/05/11 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python