首页 编程教程正文

基于Python和selenium的广东省专业技术人员远程教育学习脚本

piaodoo 编程教程 2020-02-22 22:08:33 917 0 python教程

本文来源吾爱破解论坛

本帖最后由 lntuer 于 2019-10-18 11:54 编辑

一、介绍
广东省专业技术人员远程教育网址:http://ggfw.gdhrss.gov.cn/ssologin/login?service=http://ggfw.gdhrss.gov.cn/gdggfw/index.shtml
二、功能
①基于Python和selenium半自动化登陆、pyautogui模块;

1.png (119.61 KB, 下载次数: 0)

下载附件  保存到相册

2019-10-17 17:46 上传


②自动学习该课程目录下所有课程和学习;

2.png (183.11 KB, 下载次数: 0)

下载附件  保存到相册

2019-10-17 17:48 上传


③可以后台观看视频并静音播放

3.png (327.75 KB, 下载次数: 0)

下载附件  保存到相册

2019-10-17 17:49 上传


代码如下:
[Python] 纯文本查看 复制代码
from selenium import webdriver
import pyautogui
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import re
import random
username="你的账号:"
passwd="你的密码:"
login_url='http://ggfw.gdhrss.gov.cn/ssologin/login?service=http://ggfw.gdhrss.gov.cn/gdggfw/index.shtml'
option = webdriver.ChromeOptions()
option.add_argument('--mute-audio')
browser = webdriver.Chrome(chrome_options=option)
browser.maximize_window()
browser.get(login_url)
browser.implicitly_wait(10)
elem=browser.find_element_by_id("username_personal")
elem.clear()
elem.send_keys(username)
time.sleep(1)
elem=browser.find_element_by_id("password_personal")
elem.clear()
elem.send_keys(passwd)
time.sleep(1)
code_num=pyautogui.prompt("请输入验证码:")
elem=browser.find_element_by_id("vcode_personal")
elem.clear()
elem.send_keys(code_num)
elem=browser.find_element_by_id('doPersonLogin')
elem.click()
time.sleep(3)
browser.get('需要学习的课程目录地址:')
time.sleep(3)
js_001='document.getElementsByClassName("append-plugin-tip")[0].click();'
js_005='return document.getElementsByClassName("append-plugin-tip").length;'
browser.execute_script(js_001)
time.sleep(3)
video_unstudy_num=browser.execute_script(js_005)
time.sleep(3)
for i in range(0,int(video_unstudy_num)):
    js_006='document.getElementsByClassName("append-plugin-tip")[{}].click();'.format(i)
    browser.execute_script(js_006)
    time.sleep(1)
    js_002 = 'p.play()'
    browser.execute_script(js_002)
    time.sleep(1)
    js_003 = 'return document.getElementById("realPlayVideoTime").textContent;'
    js_004 = 'return document.getElementById("askTime").textContent;'
    video_real_time = browser.execute_script(js_003)
    time.sleep(1)
    video_total_time = browser.execute_script(js_004)
    print(video_real_time,video_total_time)
    remain_time = int((int(str(video_total_time)[:2]) * 3600 + int(str(video_total_time)[3:5]) * 60 + int(str(video_total_time)[-2:]))*((101-int(video_real_time))/100))
    print("该课程还有{}秒未学习……".format(remain_time))
    first_time=time.time()
    print(first_time)
    def find_question(count_time):
        try:
            WebDriverWait(browser,count_time,0.5).until(EC.presence_of_element_located((By.XPATH, '//*[@id="aadiv"]/div')))
            browser.find_element_by_xpath('//*[@id="aadiv"]/div').click()
            time.sleep(1)
            browser.find_element_by_xpath('//*[@id="from_ejectque"]/div[2]/a').click()
            time.sleep(1)
            browser.find_element_by_xpath("/html/body/div[5]/div[3]/a/span/span").click()
            print("答题完毕……")
        except:
            print("未发现需要答题的题目……")
    find_question(remain_time)
    second_time=time.time()
    print(second_time)
    first_remain_time=int(second_time - first_time)
    print("第一次答题共等待了{}秒".format(first_remain_time))
    third_time=time.time()
    print(third_time)
    time.sleep(3)
    find_question(remain_time-first_remain_time+10)
    time.sleep(3)
    four_time=time.time()
    print(four_time)
    second_remain_time=int(four_time-third_time)
    print("第二次答题共等待了{}秒".format(second_remain_time))
    for unstart_time in range(0,remain_time-first_remain_time+10-second_remain_time):
        print("该课程还有{}秒未学习……".format(remain_time-first_remain_time+10-second_remain_time-unstart_time))
        time.sleep(1)
    time.sleep(3)

有的老铁反映Python和selenium安装比较麻烦(但是自动化程度高啊),下面还有JavaScript代码,写的比较水,可以用但是不能全部自动化,具体用法为F12,打开开发者工具输入代码回车:
[JavaScript] 纯文本查看 复制代码
        setInterval(function(){
                        document.getElementsByClassName("exam-subject-text-queanswar-answer")[0].click();
                        document.getElementsByClassName("reply-sub")[0].click();
                        document.getElementsByClassName("l-btn-text")[0].click();
                },1000)

声明:仅限个人学习使用,严禁商业使用,否则后果自负,如有违规,管理直接删帖!
最后,原创不易,还希望大家可以高抬贵手免费评个分!!!

2.png (183.11 KB, 下载次数: 0)

下载附件  保存到相册

2019-10-17 17:47 上传

2.png

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7665.html

搜索