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爬虫之爬取糗事百科段子
Feb 17 Python
Python的collections模块中namedtuple结构使用示例
Jul 07 Python
关于Python如何避免循环导入问题详解
Sep 14 Python
python获取中文字符串长度的方法
Nov 14 Python
如何在Django配置文件里配置session链接
Aug 06 Python
Python将主机名转换为IP地址的方法
Aug 14 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
如何分离django中的媒体、静态文件和网页
Nov 12 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
Python如何实现爬取B站视频
May 20 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中加密解密函数与DES加密解密实例
2014/10/17 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
php中数组最简单的使用方法
2020/12/27 PHP
Javascript 中介者模式实例
2009/12/16 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
js实现翻页后保持checkbox选中状态的实现方法
2012/11/03 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
2016/07/22 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
Python类class参数self原理解析
2020/11/19 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
一套C#面试题
2013/10/09 面试题
财务部出纳岗位职责
2013/12/22 职场文书
上班上网检讨书
2014/01/29 职场文书
班队活动设计方案
2014/01/30 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
python 详解turtle画爱心代码
2022/02/15 Python