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环境下搭建属于自己的pip源的教程
May 05 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
Jun 01 Python
Python 对输入的数字进行排序的方法
Jun 23 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
Pycharm运行加载文本出现错误的解决方法
Jun 27 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
python Kmeans算法原理深入解析
Aug 23 Python
基于Python数据分析之pandas统计分析
Mar 03 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
Python生成随机验证码代码实例解析
Jun 09 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 Python
python re.match()用法相关示例
Jan 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静态文件返回304技巧分享
2015/01/06 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
Git命令之分支详解
2021/03/02 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
浅析vue-router原理
2018/10/19 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
Python函数式编程指南(四):生成器详解
2015/06/24 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
Python双向循环链表实现方法分析
2018/07/30 Python
Python常见的pandas用法demo示例
2019/03/16 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
几个Shell Script面试题
2014/04/18 面试题
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
医学专业毕业生个人求职信
2013/12/25 职场文书
2013的个人自我评价
2013/12/26 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
教师节活动主持词
2014/04/02 职场文书
篮球社团活动总结
2014/06/27 职场文书
公司踏青活动方案
2014/08/16 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
您对思维方式了解多少?
2019/12/09 职场文书