python实现智联e学自动刷课,智联e学自动播放

1. 下载selenium使用的浏览器驱动chromedriver.exe

可以自行下载自己谷歌浏览器对应版本的chromedriver.exe,也可以用我的:

https://pan.quark.cn/s/a3dacb210695

2.安装selenium库,不建议使用最新版本,会闪退,可以使用4.5.0版本:

pip install selenium==4.5.0

3.修改下面的四个修改项

# *******************************修改项***************************************

# chromedriver.exe路径
driver_path='D:\\chrome-119.0.6045.105-win64\\chromedriver.exe'

# 视频初始url(即随便点开一个视频的url,如果url中有action_id,将其删掉即可,类似下面这个url)
chushi_url="https://course.zhaopin.com/#/courseLearning?classId=1140&taskId=4475&isChapter=true&b_idx=0&s_idx=0"

# 每章的小节个数,例如下方为一共四个章节,第一章12个小节。。。等等
lists=[12,14,14,5]

# 开始播放的小节
begin=1.1

# *******************************修改项***************************************


4.第一次使用需要自己进行登陆获取cookie,在弹出的浏览器上自主登陆,成功后点击弹框中的“确认”即可自动获取cookie

5.代码如下

from selenium import webdriver
from selenium.webdriver.common.by import By
import json
import time
import tkinter
from tkinter import messagebox  # 引入弹窗库,防止解释器弹出报错。


# *******************************注意以及使用***************************************

# 1.安装selenium库,不建议使用最新版本,会闪退,可以使用4.5.0版本:pip install selenium==4.5.0
# 2.修改下面的四个修改项,直接运行

# *******************************注意以及使用***************************************



# *******************************修改项***************************************

# chromedriver.exe路径
driver_path='C:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe'

# 视频初始url(即随便点开一个视频的url,如果url中有action_id,将其删掉即可,类似下面这个url)
chushi_url="https://course.zhaopin.com/#/courseLearning?classId=576&taskId=4474&isChapter=true&b_idx=0&s_idx=0"

# 每章的小节个数,例如下方为一共四个章节,第一章12个小节。。。等等
lists=[12,14,14,5]

# 开始播放的小节
begin=1.1

# *******************************修改项***************************************



def get_cookie():
    browser = webdriver.Chrome(driver_path)
    browser.get("https://course.zhaopin.com/")
    print("开始获取cookie")
    print("在弹出的浏览器上自主登陆,成功后点击弹框中的“确认”即可自动获取cookie")
    print("弹窗可能被浏览器挡住,登陆成功后可最小化浏览器(不要直接关闭)")

    root = tkinter.Tk()
    root.withdraw()
    root.geometry('1800x1200')
    messagebox.showinfo(title="获取cookie", message="在弹出的浏览器上自主登陆,成功后点击弹框中的“确认”即可自动获取cookie,先登录!!再点“确认”!!")

    cookies = browser.get_cookies()
    with open("cookie.json", "w") as fp:
        json.dump(cookies, fp)
    print("获取cookie成功,准备开始播放")
    browser.close()


def main():
    try:
        with open("cookie.json", "r", encoding="utf-8") as cks: #从json文件中获取之前保存的cookie
             cookie=json.load(cks)
    except:
        print("cookie有误,或未登陆,请在弹出浏览器进行手动登陆")
        get_cookie()
        main()
    driver = webdriver.Chrome(driver_path)
    driver.get(chushi_url)
    # 添加Cookie
    driver.delete_all_cookies()
    for cc in cookie:
        driver.add_cookie(cc)

    driver.get(chushi_url)
    time.sleep(2)
    title = driver.find_element(By.XPATH, '//title').text
    if title=='登录 - 学员端':
        driver.close()
        print("cookie过期,请重新登陆")
        get_cookie()
        main()
    else:
        aa=0
        for list in lists:
            aa=aa+1
            for i in range(list):
                num=float(aa)+(i+1)/10
                if num==float(begin) or num>float(begin):
                    print(f'正在播放第{str(aa)}章,{str(num)}小节')
                    path = f'/html/body/div/div/div/section/div/div[1]/div/div[2]/div/div[1]/section/div/div[{aa}]/div[{i + 1}]'
                    a = driver.find_element(By.XPATH, path)
                    a.click()
                    t1 = a.text.split('\n')
                    t2 = t1[1].split(' ')
                    t3 = t2[1]
                    t4 = t3.split(':')
                    t = int(t4[0]) * 60 + int(t4[1]) + 5
                    print(f'此小节时间为{t-5}s')
                    for i in range(t, 0, -1):
                        print("\r正在播放,剩余时间{}秒".format(i), end="", flush=True)
                        time.sleep(1)
                    time.sleep(5)
                    print("\r此小节播放完成")
                    print("************************************")

        time.sleep(3)
        print('视频全部播放完毕')
        driver.close()

main()

仅供学习!!侵权立删

  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zjeweler

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值