Example #1
0
def main():
    loginResponse = WeiBanAPI.qrLogin()

    try:
        print('登录成功,userName:'******'data']['userName'])
    except BaseException:
        print('登录失败')
        print(loginResponse)  # TODO: 这里的loginResponse调用没有考虑网络错误等问题
        exit(0)

    # 请求解析并打印用户信息
    try:
        print('请求用户信息')
        stuInfoResponse = WeiBanAPI.getStuInfo(loginResponse['data']['userId'],
                                               tenantCode)
        print('用户信息:' + stuInfoResponse['data']['realName'] + '\n' +
              stuInfoResponse['data']['orgName'] +
              stuInfoResponse['data']['specialtyName'])
    except BaseException:
        print('解析用户信息失败,将尝试继续运行,请注意运行异常')

    # 请求课程完成进度
    try:
        getProgressResponse = WeiBanAPI.getProgress(
            loginResponse['data']['normalUserProjectId'], tenantCode)
        print('课程总数:' + str(getProgressResponse['data']['requiredNum']) +
              '\n' + '完成课程:' +
              str(getProgressResponse['data']['requiredFinishedNum']) + '\n' +
              '结束时间' + str(getProgressResponse['data']['endTime']) + '\n' +
              '剩余天数' + str(getProgressResponse['data']['lastDays']))
    except BaseException:
        print('解析课程进度失败,将尝试继续运行,请注意运行异常')

    # 请求课程列表
    try:
        getListCourseResponse = WeiBanAPI.getListCourse(
            loginResponse['data']['normalUserProjectId'], '3', tenantCode)
    except BaseException:
        print('请求课程列表失败')

    print('解析课程列表并发送完成请求')

    for i in getListCourseResponse['data']:
        print('\n----章节码:' + i['categoryCode'] + '章节内容:' + i['categoryName'])
        NowClass = WeiBanAPI.GetList(
            loginResponse['data']['normalUserProjectId'], i['categoryCode'],
            '3', tenantCode, '')
        for j in NowClass['data']:
            print('课程内容:' + j['resourceName'] + '\nuserCourseId:' +
                  j['userCourseId'])

            if (j['finished'] == 1):
                print('已完成')
            else:
                print('发送完成请求')
                WeiBanAPI.doStudy(loginResponse['data']['normalUserProjectId'],
                                  j['resourceId'], tenantCode)
                WeiBanAPI.finishCourse(j['userCourseId'], tenantCode)
    print("✔✔✔必修课已完成✔✔✔")
Example #2
0
def pwLogin():
    print(
        '默认院校为吉林大学珠海学院,ID:' + tenantCode + '\n'
        + '若有需要,请自行抓包获取院校ID修改' + '\n'
    )

    # 登录信息输入
    account = input('请输入账号\n')
    password = input('请输入密码\n')

    # 获取Cookies
    print('\n获取Cookies中')
    cookie = WeiBanAPI.getCookie()
    print('Cookies获取成功')
    time.sleep(2)

    randomTimeStamp = random.randint(1E8, 1E12)
    print('验证码,浏览器打开 https://weiban.mycourse.cn/pharos/login/randImage.do?time=' + str(randomTimeStamp))

    verifyCode = input('请输入验证码')

    # 登录请求
    loginResponse = WeiBanAPI.login(account, password, tenantCode, randomTimeStamp, verifyCode, cookie)
    return loginResponse
Example #3
0
def main():
    worker = WeiBanAPI.WeiBan(tenantCode)

    try:
        worker.qrLogin()
        print('登录成功,用户名:' + worker.username)
        worker.printUserInfo()
        worker.printProgress()
        print('解析课程列表并发送完成请求...')
        worker.finishAll()
        print('所有课程已全部完成!')
    except WeiBanAPI.RE as err:
        print(err.reason)
        exit(1)
    except Exception as err:
        print('出现错误:')
        print(err)
        exit(1)

    return
Example #4
0
def main():
    # 显示License
    licenseFile = open('.' + os.sep + 'LICENSE', encoding='utf-8')
    print(licenseFile.read())
    licenseFile.close()

    # 登录

    # 补打空cookie
    cookie = ''

    loginResponse = WeiBanAPI.qrLogin()

    #  你想刷其他的课程代码
    loginResponse['data']['preUserProjectId'] = ''

    try:
        print('登录成功,userName:'******'data']['userName'])
        time.sleep(2)
    except BaseException:
        print('登录失败')
        print(loginResponse)  # TODO: 这里的loginResponse调用没有考虑网络错误等问题
        exit(0)

    # 请求解析并打印用户信息
    # try:
    #     print('请求用户信息')
    #     stuInfoResponse = WeiBanAPI.getStuInfo(loginResponse['data']['userId'],
    #                                            tenantCode,
    #                                            cookie)
    #     print('用户信息:' + stuInfoResponse['data']['realName'] + '\n'
    #           + stuInfoResponse['data']['orgName']
    #           + stuInfoResponse['data']['specialtyName']
    #           )
    #     time.sleep(2)
    # except BaseException:
    #     print('解析用户信息失败,将尝试继续运行,请注意运行异常')

    # 请求课程完成进度
    # try:
    #     getProgressResponse = WeiBanAPI.getProgress(loginResponse['data']['preUserProjectId'],
    #                                                 tenantCode,
    #                                                 cookie)
    #     print('课程总数:' + str(getProgressResponse['data']['requiredNum']) + '\n'
    #           + '完成课程:' +
    #           str(getProgressResponse['data']['requiredFinishedNum']) + '\n'
    #           + '结束时间' + str(getProgressResponse['data']['endTime']) + '\n'
    #           + '剩余天数' + str(getProgressResponse['data']['lastDays'])
    #           )
    #     time.sleep(2)
    # except BaseException:
    #     print('解析课程进度失败,将尝试继续运行,请注意运行异常')

    # 请求课程列表
    try:
        getListCategoryResponse = WeiBanAPI.getListCategory(
            loginResponse['data']['preUserProjectId'], '3', tenantCode,
            loginResponse['data']['userId'], loginResponse['data']['token'])
        print(getListCategoryResponse)
        time.sleep(2)
    except BaseException:
        print('请求课程列表失败')

    print('解析课程列表并发送完成请求')

    for Category in getListCategoryResponse['data']:
        print('\n----章节码:' + Category['categoryCode'] + '章节内容:' +
              Category['categoryName'])
        try:
            getListCourseResponse = WeiBanAPI.getListCourse(
                loginResponse['data']['preUserProjectId'], '3',
                Category['categoryCode'], '', loginResponse['data']['userId'],
                tenantCode, loginResponse['data']['token'])
            time.sleep(2)
        except BaseException:
            print('请求课程列表失败')
        for j in getListCourseResponse['data']:
            print('课程内容:' + j['resourceName'] + '\nuserCourseId:' +
                  j['userCourseId'])
            if (j['finished'] == 1):
                print('已完成')
            else:
                print('发送完成请求')
                WeiBanAPI.doStudy(loginResponse['data']['preUserProjectId'],
                                  j['resourceId'], tenantCode)
                WeiBanAPI.finishCourse(j['userCourseId'], tenantCode, cookie)

                delayInt = WeiBanAPI.getRandomTime()
                print('\n随机延时' + str(delayInt))
                time.sleep(delayInt)
Example #5
0
def main():
    # 显示License
    '''
    with open("./LICENSE", encoding="utf-8") as licenseFile:
        print(licenseFile.read())
    '''
    # 登录
    # loginResponse = pwLogin()
    # 补打空cookie
    print("正在连接网课服务器...\n")
    cookie = ''

    loginResponse = WeiBanAPI.qrLogin()

    ### Gobal
    userProjectId = ''
    userId = ''
    ###

    try:
        print('登录成功,userName:'******'data']['userName'])

        # 设置全局数据
        userProjectId = loginResponse['data']['preUserProjectId']
        userId = loginResponse['data']['userId']

        time.sleep(2)
    except BaseException:
        print('登录失败')
        print(loginResponse)  # TODO: 这里的loginResponse调用没有考虑网络错误等问题
        exit(0)

    # 请求解析并打印用户信息
    try:
        print('请求用户信息')
        stuInfoResponse = WeiBanAPI.getStuInfo(loginResponse['data']['userId'],
                                               tenantCode, cookie)
        print('用户信息:' + stuInfoResponse['data']['realName'] + '\n' +
              stuInfoResponse['data']['orgName'] +
              stuInfoResponse['data']['specialtyName'])
        time.sleep(2)
    except BaseException:
        print('解析用户信息失败,将尝试继续运行,请注意运行异常')

    # 请求课程完成进度
    try:
        getProgressResponse = WeiBanAPI.getProgress(
            loginResponse['data']['preUserProjectId'], tenantCode, cookie)
        print('课程总数:' + str(getProgressResponse['data']['requiredNum']) +
              '\n' + '完成课程:' +
              str(getProgressResponse['data']['requiredFinishedNum']) + '\n' +
              '结束时间' + str(getProgressResponse['data']['endTime']) + '\n' +
              '剩余天数' + str(getProgressResponse['data']['lastDays']))
        time.sleep(2)
    except BaseException:
        print('解析课程进度失败,将尝试继续运行,请注意运行异常')

    getListCourseResponse = {}

    # 请求课程列表
    try:
        getListCourseResponse = WeiBanAPI.getListCourse(
            loginResponse['data']['preUserProjectId'], '3', tenantCode, '',
            cookie)
        time.sleep(2)
    except BaseException:
        print('请求课程列表失败')

    print('解析课程列表并发送完成请求')

    for i in getListCourseResponse['data']:
        print('\n----章节码:' + i['categoryCode'] + '章节内容:' + i['categoryName'])
        courseList = WeiBanAPI.getCourseListByCategoryCode(
            i['categoryCode'], userProjectId, userId, tenantCode)
        for j in courseList['data']:
            print('课程内容:' + j['resourceName'] + '\nuserCourseId:' +
                  j['userCourseId'])

            if (j['finished'] == 1):
                print('已完成')
            else:
                print('发送完成请求')
                WeiBanAPI.doStudy(userProjectId, j['resourceId'], tenantCode,
                                  userId)
                WeiBanAPI.finishCourse(j['userCourseId'], tenantCode, cookie)

                delayInt = WeiBanAPI.getRandomTime()
                print('\n随机延时' + str(delayInt))
                time.sleep(delayInt)
Example #6
0
tenantCode = '51900002'  # 吉珠院校ID

# License
licenseFile = open('.' + os.sep + 'LICENSE', encoding='utf-8')
print(licenseFile.read())
licenseFile.close()

print('默认院校为吉林大学珠海学院,ID:' + tenantCode + '\n' + '若有需要,请自行抓包获取院校ID修改' + '\n')

# 登录信息输入
account = input('请输入账号\n')
password = input('请输入密码\n')

# 获取Cookies
print('\n获取Cookies中')
cookie = WeiBanAPI.getCookie()
print('Cookies获取成功')
time.sleep(2)

randomTimeStamp = random.randint(100000000, 1000000000000)
print('验证码,浏览器打开 https://weiban.mycourse.cn/pharos/login/randImage.do?time=' +
      str(randomTimeStamp))

verifyCode = input('请输入验证码')

# 登录请求
loginResponse = WeiBanAPI.login(account, password, tenantCode, randomTimeStamp,
                                verifyCode, cookie)

try:
    print('登录成功,userName:'******'data']['userName'])
Example #7
0
def main():
    # 显示License
    '''
    with open("./LICENSE", encoding="utf-8") as licenseFile:
        print(licenseFile.read())
    '''
    # 登录
    # loginResponse = pwLogin()
    # 补打空cookie
    print("正在连接网课服务器...\n")
    cookie = ''

    loginResponse = WeiBanAPI.qrLogin()

    # Gobal
    userProjectId = ''
    userId = ''
    ###

    try:
        print('登录成功,userName:'******'data']['userName'])

        # 设置全局数据
        userId = loginResponse['data']['userId']
        time.sleep(2)
    except BaseException:
        print('登录失败')
        print(loginResponse)  # TODO: 这里的loginResponse调用没有考虑网络错误等问题
        exit(0)
    i = 0
    print('请选择课程\n1 - {}\n2 - {}\n3 - {}\n4 - {}'.format(loginResponse['data']['preAlias'], loginResponse['data']
                                                         ['normalAlias'], loginResponse['data']['specialAlias'], loginResponse['data']['militaryAlias']))
    print('请按照当前课程选择,否则容易出错!!!')
    i = int(input())
    if i == 1:
        userProjectId = loginResponse['data']['preUserProjectId']
    elif i == 2:
        userProjectId = loginResponse['data']['normalUserProjectId']
    elif i == 3:
        userProjectId = loginResponse['data']['specialUserProjectId']
    elif i == 4:
        userProjectId = loginResponse['data']['militaryUserProjectId']
    # 请求解析并打印用户信息
    try:
        print('请求用户信息')
        stuInfoResponse = WeiBanAPI.getStuInfo(loginResponse['data']['userId'],
                                               tenantCode,
                                               cookie)
        print('用户信息:' + stuInfoResponse['data']['realName'] + '\n'
              + stuInfoResponse['data']['orgName']
              + stuInfoResponse['data']['specialtyName']
              )
        time.sleep(2)
    except BaseException:
        print('解析用户信息失败,将尝试继续运行,请注意运行异常')

    # 请求课程完成进度
    try:
        getProgressResponse = WeiBanAPI.getProgress(userProjectId,
                                                    tenantCode,
                                                    cookie)
        print("必修课程总数:"+str(getProgressResponse['data']['requiredNum'])+'\n'
              + "必修完成课程:" +
              str(getProgressResponse['data']['requiredFinishedNum'])+'\n'
              + '匹配课程总数:' + str(getProgressResponse['data']['pushNum']) + '\n'
              + '匹配完成课程:' +
              str(getProgressResponse['data']['pushFinishedNum']) + '\n'
              + "自选课程总数:"+str(getProgressResponse['data']['optionalNum'])+'\n'
              + "自选完成课程:" +
              str(getProgressResponse['data']['optionalFinishedNum'])+'\n'
              + '结束时间' + str(getProgressResponse['data']['endTime']) + '\n'
              + '剩余天数' + str(getProgressResponse['data']['lastDays'])
              )
        time.sleep(2)
    except BaseException:
        print('解析课程进度失败,将尝试继续运行,请注意运行异常')
    chooseType=0;
    print('请选择课程分类\n1 - 匹配课程\n2 - 自选课程\n3 - 必修课程')
    chooseType=int(input())
    getListCourseResponse = {}

    # 请求课程列表
    try:
        getListCourseResponse = WeiBanAPI.getListCourse(userProjectId,
                                                        chooseType,
                                                        tenantCode,
                                                        '',
                                                        cookie)
        time.sleep(2)
    except BaseException:
        print('请求课程列表失败')

    print('解析课程列表并发送完成请求')

    for i in getListCourseResponse['data']:
        print('\n----章节码:' + i['categoryCode'] + '章节内容:' + i['categoryName'])
        courseList = WeiBanAPI.getCourseListByCategoryCode(
            i['categoryCode'], userProjectId, userId, tenantCode,chooseType)
        for j in courseList['data']:
            print('课程内容:' + j['resourceName'] +
                  '\nuserCourseId:' + j['userCourseId'])
            if (j['finished'] == 1):
                print('已完成')
            else:
                print('发送完成请求')
                WeiBanAPI.doStudy(
                    userProjectId, j['resourceId'], tenantCode, userId)
                WeiBanAPI.finishCourse(j['userCourseId'], tenantCode, cookie)

                delayInt = WeiBanAPI.getRandomTime()
                print('\n随机延时' + str(delayInt))
                time.sleep(delayInt)