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 01 Python
Python随机生成带特殊字符的密码
Mar 02 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
pandas表连接 索引上的合并方法
Jun 08 Python
Python实现Dijkstra算法
Oct 17 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 Python
k-means 聚类算法与Python实现代码
Jun 01 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
基于Python的EasyGUI学习实践
May 07 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
Jun 08 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 多线程上下文中安全写文件实现代码
2009/12/28 PHP
yii的CURD操作实例详解
2014/12/04 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
改变javascript函数内部this指针指向的三种方法
2010/04/23 Javascript
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
2014/09/03 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
webpack中使用iconfont字体图标的方法
2018/02/22 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
2019/12/06 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
python获取从命令行输入数字的方法
2015/04/29 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
对Python发送带header的http请求方法详解
2019/01/02 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
2020/01/19 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
2020/02/11 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
python实现最速下降法
2020/03/24 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
会计助理的岗位职责
2013/11/29 职场文书
大学生作弊检讨书
2014/02/19 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
企业宣传口号
2014/06/12 职场文书
元宵节寄语大全
2015/02/27 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
起诉书范文
2015/05/20 职场文书
javascript Number 与 Math对象的介绍
2021/11/17 Javascript
Java无向树分析 实现最小高度树
2022/04/09 Javascript