吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12127|回复: 37
收起左侧

[Python 转载] 基于Python和selenium的内蒙古继续教育网---刷课

  [复制链接]
lntuer 发表于 2019-8-30 17:49
本帖最后由 lntuer 于 2019-9-16 18:14 编辑

目标网址:https://www.nmgjxjy.com/
解决问题:所选课程全部自动化
运行环境:Python3seleniumchromepyautogui
声明:仅限个人学习使用,严禁商业使用,否则后果自负(如有违规请版主删除) 1.png
登陆网址
2.png
课程目录
3.png
单个课程目录
4.png
单个视频
from selenium import webdriver
import pyautogui
import time
import re
#个人账号
username=pyautogui.prompt("请输入账号:")
#个人密码
passwd=pyautogui.prompt("请输入密码:")
login_url='https://www.nmgjxjy.com'
lesson_url='https://www.nmgjxjy.com/user/packets?flag=studying'
option = webdriver.ChromeOptions()
browser = webdriver.Chrome( chrome_options=option)
browser.maximize_window()
browser.get(login_url)
browser.implicitly_wait(10)
elem=browser.find_element_by_class_name("userNmae")
elem.send_keys(username)
time.sleep(1)
elem=browser.find_element_by_class_name("userPwd")
elem.send_keys(passwd)
time.sleep(1)
code_num=pyautogui.prompt("请输入验证码:")
elem=browser.find_element_by_class_name("userCode")
elem.send_keys(code_num)
elem=browser.find_element_by_xpath('/html/body/div[4]/div[1]/div[1]/div[1]/div/div[1]/form/div[5]/input')
elem.click()
time.sleep(3)
browser.find_element_by_xpath('/html/body/div[2]/div[1]/ul/li[2]/a/span').click()
time.sleep(3)
num=browser.find_elements_by_class_name("td_02")
print(len(num))
for i in range(0,len(num)):
    lesson_xpath="/html/body/div[2]/div[3]/div[3]/div/div[2]/div/table/tbody/tr["+str(2+i)+"]/td[7]/a/img"
    browser.find_element_by_xpath(lesson_xpath).click()
    window = browser.window_handles
    browser.switch_to_window(window[-1])
    time.sleep(5)
    next_num=re.findall("autoff",browser.page_source)
    video_time=re.findall("\'0\'\,\'3\',\'(.*?)\'\,\'5",browser.page_source)
    tr_id=re.findall('id="(autoff.*?)">',browser.page_source)   
    print(len(next_num))
    print(video_time)
    print(tr_id)
    for g,m in zip(tr_id,video_time) :
        xpath_code = '//*[@id="' + str(g) + '"]/td[4]/a/img'
        watched_id = browser.find_element_by_xpath('//*[@id="' + str(g) + '"]/td[3]').text
        print(watched_id)        //增加一个判断、判断该视频是否已学习完        
        if watched_id == "否":
            browser.find_element_by_xpath(xpath_code).click()
            # 延迟100秒
            lesson_timeout = int(str(m).split(".")[0]) * 60 + int(str(m).split(".")[1]) + 100
            print(lesson_timeout)
            time.sleep(lesson_timeout)
    browser.back()
    time.sleep(1)
    browser.switch_to_alert().accept()
    time.sleep(3)
    browser.find_element_by_xpath('/html/body/div[2]/div[1]/ul/li[2]/a/span').click()
    time.sleep(3)

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
mfkiud + 1 + 1 我很赞同!就是看不懂,运行时候报错了
mdsk2008 + 1 + 1 用心讨论,共获提升!崇拜!
启逸 + 1 + 1 感谢老哥

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Test_dada 发表于 2020-12-1 13:50
[Python] 纯文本查看 复制代码
from selenium import webdriver
import pyautogui
import time
import re
#个人账号
username=pyautogui.prompt("请输入账号:")
#个人密码
passwd=pyautogui.prompt("请输入密码:")
login_url='https://www.nmgjxjy.com'
lesson_url='https://www.nmgjxjy.com/user/packets?flag=studying'
option = webdriver.ChromeOptions()
browser = webdriver.Chrome( chrome_options=option)
browser.maximize_window()
browser.get(login_url)
browser.implicitly_wait(10)
elem=browser.find_element_by_class_name("userNmae")
elem.send_keys(username)
time.sleep(1)
elem=browser.find_element_by_class_name("userPwd")
elem.send_keys(passwd)
time.sleep(1)
code_num=pyautogui.prompt("请输入验证码:")
elem=browser.find_element_by_class_name("userCode")
elem.send_keys(code_num)
elem=browser.find_element_by_xpath('/html/body/div[4]/div[1]/div[1]/div[1]/div/div[1]/form/div[5]/input')
elem.click()
time.sleep(3)
browser.find_element_by_xpath('/html/body/div[2]/div[1]/ul/li[2]/a/span').click()
time.sleep(3)
num=browser.find_elements_by_class_name("td_02")
print(len(num))
for i in range(0,len(num)):
    lesson_xpath="/html/body/div[2]/div[3]/div[3]/div/div[2]/div/table/tbody/tr["+str(2+i)+"]/td[7]/a/img"
    browser.find_element_by_xpath(lesson_xpath).click()
    window = browser.window_handles
    browser.switch_to_window(window[-1])
    time.sleep(5)
    next_num=re.findall("autoff",browser.page_source)
    video_time=re.findall("\'0\'\,\'3\',\'(.*?)\'\,\'5",browser.page_source)
    tr_id=re.findall('id="(autoff.*?)">',browser.page_source)   
    print(len(next_num))
    print(video_time)
    print(tr_id)
    for g,m in zip(tr_id,video_time) :
        xpath_code = '//*[@id="' + str(g) + '"]/td[4]/a/img'
        watched_id = browser.find_element_by_xpath('//*[@id="' + str(g) + '"]/td[3]').text
        print(watched_id)        //增加一个判断、判断该视频是否已学习完        
        if watched_id == "否":
            browser.find_element_by_xpath(xpath_code).click()
            # 延迟100秒
            lesson_timeout = int(str(m).split(".")[0]) * 60 + int(str(m).split(".")[1]) + 100
            print(lesson_timeout)
            time.sleep(lesson_timeout)
    browser.back()
    time.sleep(1)
    browser.switch_to_alert().accept()
    time.sleep(3)
    browser.find_element_by_xpath('/html/body/div[2]/div[1]/ul/li[2]/a/span').click()
    time.sleep(3)
 楼主| lntuer 发表于 2019-9-2 13:43
沙卡丶拉卡 发表于 2019-9-2 13:23
纯小白,发的是源码吗,是怎么使用的呢,继续教育太费事儿了555

Python和selenium
h16888 发表于 2019-8-30 18:04
cs323 发表于 2019-8-31 00:11
强!!!!!!!!!!!!11
so9sso9s 发表于 2019-8-31 00:13
虽然不知道啥用,猜测是不是不用学习扒学分的,帮顶了
吸水雨衣 发表于 2019-8-31 00:22
网站名字很牛逼啊
earther 发表于 2019-8-31 11:01
谢谢楼主分享
niceboge 发表于 2019-9-2 09:26
好牛的工具啊,支持一下。
qiaosht 发表于 2019-9-2 09:36
求河北专技刷课
沙卡丶拉卡 发表于 2019-9-2 13:23
纯小白,发的是源码吗,是怎么使用的呢,继续教育太费事儿了555
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 15:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表