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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
python实现得到一个给定类的虚函数
Sep 28 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
简单介绍Python2.x版本中的cmp()方法的使用
May 20 Python
python 添加用户设置密码并发邮件给root用户
Jul 25 Python
Python连接DB2数据库
Aug 27 Python
python 字典修改键(key)的几种方法
Aug 10 Python
python列表使用实现名字管理系统
Jan 30 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
Jun 14 Python
pycharm运行scrapy过程图解
Nov 22 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
Feb 14 Python
python 实现两个变量值进行交换的n种操作
Jun 02 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
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
PHP中英混合字符串截取函数代码
2011/07/17 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
Python随机生成数模块random使用实例
2015/04/13 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
python同步windows和linux文件
2019/08/29 Python
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
Diamondback自行车:拥有你的冒险
2019/04/22 全球购物
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
公司捐款倡议书
2014/05/14 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
2014年纠风工作总结
2014/12/08 职场文书
考察邀请函范文
2015/01/31 职场文书
复兴之路展览观后感
2015/06/02 职场文书
物业保洁员管理制度
2015/08/05 职场文书
毕业欢送晚会主持词
2019/06/25 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
dubbo服务整合zipkin详解
2021/07/26 Java/Android
Apache自带的ab压力测试工具的实现
2022/07/23 Servers
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS