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 25 Python
numpy中实现二维数组按照某列、某行排序的方法
Apr 04 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
python同时遍历数组的索引和值的实例
Nov 15 Python
Python txt文件加入字典并查询的方法
Jan 15 Python
基于python的selenium两种文件上传操作实现详解
Sep 19 Python
用Python解数独的方法示例
Oct 24 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
Python代码中如何读取键盘录入的值
May 27 Python
Python小白学习爬虫常用请求报头
Jun 03 Python
Python还能这么玩之用Python修改了班花的开机密码
Jun 04 Python
基于PyQt5制作一个群发邮件工具
Apr 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
php异常处理方法实例汇总
2015/06/24 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
Python map和reduce函数用法示例
2015/02/26 Python
浅谈python可视化包Bokeh
2018/02/07 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
2018/11/30 Python
Python语言快速上手学习方法
2018/12/14 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
用python写爬虫简单吗
2020/07/28 Python
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
大二自我鉴定范文
2013/10/05 职场文书
2014年3.15团委活动总结
2014/03/16 职场文书
校园广播稿100字
2014/10/06 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
初中英语教学随笔
2015/08/15 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL