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中一些自然语言工具的使用的入门教程
Apr 13 Python
各个系统下的Python解释器相关安装方法
Oct 12 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
python实现报表自动化详解
Nov 16 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
python画图系列之个性化显示x轴区段文字的实例
Dec 13 Python
详解小白之KMP算法及python实现
Apr 04 Python
Python GUI学习之登录系统界面篇
Aug 21 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
python计算导数并绘图的实例
Feb 29 Python
python获取天气接口给指定微信好友发天气预报
Dec 28 Python
Python实现仓库管理系统
May 30 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
晶体管来复再生式二管收音机
2021/03/02 无线电
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
php根据日期判断星座的函数分享
2014/02/13 PHP
php绘制一个矩形的方法
2015/01/24 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
2016/06/12 Javascript
浅谈JavaScript对象与继承
2016/07/10 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
javascript编程实现栈的方法详解【经典数据结构】
2017/04/11 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
零基础学Python(一)Python环境安装
2014/08/20 Python
Python使用py2exe打包程序介绍
2014/11/20 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
最新大学生自我评价
2013/09/24 职场文书
会计自我鉴定
2013/11/02 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
2019年思想汇报
2019/06/20 职场文书
Python图像处理之图像拼接
2021/04/28 Python
Python基础之hashlib模块详解
2021/05/06 Python
javascript canvas实现雨滴效果
2021/06/09 Javascript
青岛市的收音机研制与生产
2022/04/07 无线电
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android