吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4306|回复: 24
收起左侧

[Python 转载] 基于Python和selenium的岳阳市专业技术人员远程教育学习脚本

  [复制链接]
lntuer 发表于 2019-10-14 17:54
本帖最后由 lntuer 于 2019-10-15 14:30 编辑

一、介绍
岳阳市专业技术人员远程教育网址:http://yyzjpx.17el.cn/
二、功能
①基于Python和selenium半自动化登陆、pyautogui模块;
1.png
②自动学习该课程目录下所有课程和学习;
2.png
③可以后台观看视频并静音播放
3.png
代码如下:
[Python] 纯文本查看 复制代码
from selenium import webdriver
import pyautogui
import time
import re
import random
username="你的账号"
passwd="你的密码"
login_url='http://yyzjpx.17el.cn'
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")
elem.clear()
elem.send_keys(username)
time.sleep(1)
elem=browser.find_element_by_id("Password")
elem.clear()
elem.send_keys(passwd)
time.sleep(1)
js_002='return document.getElementsByClassName("login_img")[0].firstElementChild.textContent'
code_num=browser.execute_script(js_002)
elem=browser.find_element_by_id("yzm")
elem.clear()
elem.send_keys(code_num)
time.sleep(3)
elem=browser.find_element_by_id('sub')
elem.click()
time.sleep(3)
browser.get('你要学习的目录URL')
time.sleep(3)
windows = browser.window_handles
browser.switch_to_window(windows[-1])
time.sleep(10)
video_url=re.findall('<a href="(/flex/HXGC_Player.*?sfsc=0)"',browser.page_source)
video_time=re.findall('>总时长:(.*?)</span>',browser.page_source)
video_progress=re.findall('>学习进度:(.*?)%</span>',browser.page_source)
for a,b,c in zip(video_url,video_time,video_progress):
    if c!="100":
        print(c)
        remain_time= int(str(b)[:2]) * 3600 + int(str(b)[3:5]) * 60 + int(str(b)[-2:])
        remain_times=int(remain_time*(1-int(c)/100+0.01))
        unwatch_video_url="http://person.17el.cn"+a
        js_001='document.getElementsByClassName("chapterlist")[{}].firstElementChild.click()'.format(video_time.index(b))
        browser.execute_script(js_001)
        time.sleep(30)
        for video_num in range(1,remain_times):
            try:
                js = 'window.parent.document.getElementById("HXGC_Player").questionPopHandler({},0);'.format(int(random.random())+1)
                browser.execute_script(js)
                print("该课程还有{}秒未学习......".format(remain_times-video_num))
                time.sleep(1)
            except:
                print("无法观测到是否有答题页面……")
        browser.back()
        time.sleep(5)

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

编辑说明:改进验证码输入方式,不再进行人工输入,由代码自动输入!

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
mei564335 + 1 + 1 用心讨论,共获提升!

查看全部评分

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

今天礼拜八 发表于 2019-10-25 14:18
lntuer 发表于 2019-10-24 22:15
elem.clear()
elem.send_keys(username)
这就是清除预设代码啊

昨晚你说清除了,我把代码重新复制过去,试了一次,那内容不是在,
后来我把三个输入内容的延时加了几秒,这样就有时间手工删除预设内容了。
整个脚本挺稳定的,昨晚测试了一个课程 ,12小时内搞定一个课程。
vethenc 发表于 2019-10-14 18:05
宅男/kel 发表于 2019-10-14 18:06
头像被屏蔽
雨林木风 发表于 2019-10-14 18:41
提示: 作者被禁止或删除 内容自动屏蔽
wind941 发表于 2019-10-14 18:43
楼主是岳阳的吗?我也岳阳的
fallerL 发表于 2019-10-14 18:51
感谢分享-
ghoob321 发表于 2019-10-14 18:57
岳阳楼记里边的岳阳吗,感谢分享
guotong99 发表于 2019-10-14 19:19
岳阳老乡来支持下。就算看不懂。有没有什么简单的小程序或者视频教程咯?
dreamrise 发表于 2019-10-14 19:24
膜拜大神。
dreamrise 发表于 2019-10-14 19:28
验证码可以调用百度API识别
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-26 01:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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