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在人工智能中的作用
Nov 14 Python
浅谈tensorflow中几个随机函数的用法
Jul 27 Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 Python
利用python提取wav文件的mfcc方法
Jan 09 Python
python使用装饰器作日志处理的方法
Jul 11 Python
python中使用while循环的实例
Aug 05 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 Python
Python 实现递归法解决迷宫问题的示例代码
Jan 12 Python
Pytorch实现LSTM和GRU示例
Jan 14 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
五种Python转义表示法
Nov 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执行.SQL文件
2013/07/05 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
红黑树的插入详解及Javascript实现方法示例
2018/03/26 Javascript
Vue拖拽组件开发实例详解
2018/05/11 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
详解vue路由
2020/08/05 Javascript
理解Python中的绝对路径和相对路径
2017/08/30 Python
python中logging库的使用总结
2017/10/18 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
Python双向循环链表实现方法分析
2018/07/30 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
浅述python中深浅拷贝原理
2018/09/18 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
python使用Geany编辑器配置方法
2020/02/21 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
python模拟斗地主发牌
2020/04/22 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
大学生求职自我评价
2014/01/16 职场文书
稽核岗位职责范本
2015/04/13 职场文书
读书笔记怎么写
2015/07/01 职场文书
大学生军训感言
2015/08/01 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android