教你用Python实现全自动刷网课

#引用库

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.by import By

import time

#全局变量区域

url = "https://www.icourse163.org/"

driver = webdriver.Chrome()

account = '********@163.com'

password = '********'

lists=['1','2','3','4','5','6','7','8','9','10',]

cha='/html/body/div[4]/div[2]/div[4]/div[2]/div/div[1]/div/div/div[1]/div[1]/div/div[1]/div/div[2]/div'

chapters=['1','2','3','4','5','6','7','8','9','10','11','12','13','14']

les='/html/body/div[4]/div[2]/div[4]/div[2]/div/div[1]/div/div/div[1]/div[1]/div/div[2]/div/div[2]/div'

lessons=['1','2','3','4','5','6',]

#打开网页

driver.get(url)

driver.maximize_window()

#登陆部分

try:

    driver.find_element(By.XPATH, '/html/body/div[4]/div[2]/div[1]/div/div/div[1]/div[3]/div[3]/div').click()

    driver.find_element(By.XPATH, '/html/body/div[13]/div[2]/div/div/div/div/div[2]/span').click()

    print('点击登陆按钮成功\n')

except:

    print('点击登陆按钮时出错')

#输入账号密码部分

try:

    driver._switch_to.frame(0) #这里转到fame0 因为mooc网站点击登陆后是弹窗的

    driver.find_element(By.XPATH, '/html/body/div[2]/div[2]/div[2]/form/div/div[1]/div[2]/input').send_keys(account)

    driver.find_element(By.XPATH, '/html/body/div[2]/div[2]/div[2]/form/div/div[3]/div[2]/input[2]').send_keys(password)

    print('外汇跟单gendan5.com输入账号密码成功\n')

    driver.find_element(By.XPATH, '/html/body/div[2]/div[2]/div[2]/form/div/div[8]/a').click()

except:

    print('登陆失败')

time.sleep(2)

#点击 我的课程 按钮

try:

    driver.switch_to.default_content()   driver.find_element(By.XPATH,'/html/body/div[4]/div[2]/div[1]/div/div/div[1]/div[3]/div[1]/img').click()

    print("点击头像成功\n")

except:

    print("点击头像出错")

time.sleep(2)

#点击 高等数学(一) 课程

try:    driver.find_element(By.XPATH,'/html/body/div[4]/div[2]/div[3]/div/div[1]/div[3]/div/div[2]/div/div/div[2]/div[1]/div[2]/div/div[1]/div[1]/div[1]/a/div[1]/img').click()

    print("点击 '高等数学(一)'成功\n")

except:

    print("点击课程失败")

time.sleep(2)

#点击继续学习

try:

    driver.switch_to.window(driver.window_handles[-1])    driver.find_element(By.XPATH,'/html/body/div[4]/div[2]/div[4]/div[2]/div/div[1]/div/div[1]/div/div[1]/div/a[1]').click()

    print('点击继续学习成功\n')

except:

    print("点击继续学习失败")

#疯狂点击

#点击chapter后点击lesson 然后点击视频和文档

for c in chapters:

    time.sleep(1)

    js="document.getElementsByClassName('down f-bg j-list')[0].style.display='block'"

    driver.execute_script(js)

    driver.find_element(By.XPATH,cha+'['+c+']').click()

    time.sleep(1)

    for l in lessons:

        try:

            time.sleep(1)

            js2="document.getElementsByClassName('down f-bg j-list')[1].style.display='block'"

            driver.execute_script(js2)

            driver.find_element(By.XPATH,les+'['+l+']').click()

            time.sleep(1)

        except:

            break

        for i in lists:

            try:

                time.sleep(1)

driver.find_element(By.XPATH,'/html/body/div[4]/div[2]/div[4]/div[2]/div/div[1]/div/div/div[3]/ul/li['+ i +']' ).click()

                time.sleep(1)

            except:

                break


请使用浏览器的分享功能分享到微信等