zoukankan      html  css  js  c++  java
  • 使用 urllib.request 来访问蘑菇丁、登录

    import ssl
    import json
    #使用urllib 去访问页面
    import urllib.request as ur
    #规避警告
    context = ssl._create_unverified_context()


    # 登录函数
    def Login(info_data):

    # 把字典info_data转成字符串、再用过encoding指定的编码格式编码字符串
    test_data = json.dumps(info_data).encode()
    print("*******",test_data,"-----",type(test_data))

    request_data = ur.Request(
    #要登录的网址
    url='https://api.moguding.net:9000/session/user/v1/login',

    # login_data =是{'loginType': 'iphone', 'password': 'hope2019', 'phone': '18681989609'}
    #登录头中的数据
    data=json.dumps(info_data).encode(),

    #高速服务器自己是谁, 这里说自己是app
    headers={'Content-Type': 'application/json; charset=UTF-8'}
    )

    print(ur.Request)
    try:
    #实现登录 其中.read()是拿到内容, ,decode是以Python decode() 方法以 encoding 指定的编码格式解码字符串
    response = json.loads(ur.urlopen(request_data, context=context).read().decode())
    token = response['data']['token']

    #拿到token
    if token:
    return {
    'code': '200',
    'info': '登录成功',
    'token': token
    }

    except Exception as e:
    if str(e) == '<urlopen error Remote end closed connection without response>':
    return {
    'code': '404',
    'info': '网络链接超时'
    }
    else:
    return {
    'code': '505',
    'info': '账号或密码错误'
    }


    #获取学生日报(day)、周报(week)、月报(month)列表
    def GetReports(token, reportType):
    ids = []
    day = {"currPage": 1, "pageSize": 25, "batchId": "", "classId": "",
    "teaId": "", "reportType": reportType, "planId": "", "state": 0}
    request_data = ur.Request(

    #个人中心的网址
    url = "https://api.moguding.net:9000/usercenter/user/v1/info",
    #url='https://api.moguding.net:9000/practice/paper/v1/list',
    headers={
    'Authorization': token,
    'Content-Type': 'application/json; charset=UTF-8'
    },
    data=json.dumps(day).encode("utf-8"))
    try:
    #访问个人中心、、
    response = ur.urlopen(request_data, context=context).read().decode()
    #print("response--------------",response)
    return response
    except Exception as e:
    print(e)


    if __name__ == '__main__':
    response = Login({'loginType': 'iphone', 'password': '密码', 'phone': '手机号'})
    token = response['token']
    ids = GetReports(token,"day")
    print("个人中心的response: ", ids)
  • 相关阅读:
    如何使用angularjs实现文本框设置值
    如何使用angularjs实现文本框获取焦点
    electron的安装
    linux中升级jdk的方法
    linux中添加开机自启服务的方法
    liunx系统安装tomcat的方法
    liunx系统安装jdk的方法
    常用linux命令
    ResourceBundle的使用
    查看Linux系统版本的命令
  • 原文地址:https://www.cnblogs.com/yuanjia8888/p/13470462.html
Copyright © 2011-2022 走看看