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之编写类之二方法
Oct 11 Python
Python实现简易端口扫描器代码实例
Mar 15 Python
Python 使用with上下文实现计时功能
Mar 09 Python
Python安装图文教程 Pycharm安装教程
Mar 27 Python
Python实现基于C/S架构的聊天室功能详解
Jul 07 Python
解决pandas .to_excel不覆盖已有sheet的问题
Dec 10 Python
使用Python正则表达式操作文本数据的方法
May 14 Python
Python 获取windows桌面路径的5种方法小结
Jul 15 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
python如何提取英语pdf内容并翻译
Mar 03 Python
如何在python中实现线性回归
Aug 10 Python
Python中json.dumps()函数的使用解析
May 17 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
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
PHP小技巧之函数重载
2014/06/02 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
2018/05/12 PHP
php输出形式实例整理
2020/05/05 PHP
JavaScript OOP类与继承
2009/11/15 Javascript
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
Python微信操控itchat的方法
2019/05/31 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
智能旅行箱:Horizn Studios
2018/04/30 全球购物
惠普香港官方商店:HP香港
2019/04/30 全球购物
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
倡议书作文
2015/01/19 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL