https://faxue.inmoke.com

欢迎指出不足缺点

总进度])table.add_row([f{vodall - len(videotasker)}/{vodall}, 'userCenterUrl').click()out(登录成功)driver.get(fhttps://course.icve.com.cn/learnspace/sign/signLearn.action?template=bluecourseId={classId}loginType=trueloginId={userName}sign=0siteCode=zhzjdomain=user.icve.com.cn)time.sleep(2)driver.switch_to.frame('mainContent')time.sleep(2)videotasker = etree.HTML(driver.page_source).xpath('//*[@completestate=0 and @itemtype=video]/@onclick')doctasker = etree.HTML(driver.page_source).xpath('//*[@completestate=0 and @itemtype=doc]/@onclick')vodall = len(etree.HTML(driver.page_source).xpath('//*[@itemtype=video]/@onclick'))docall = len(etree.HTML(driver.page_source).xpath('//*[@itemtype=doc]/@onclick'))table = PrettyTable([视频已完成/全部,死循环等,吾爱破解论坛有你更精彩! a22488 + 1 + 1 热心回复! winsign + 1 + 1 我很赞同! ydop + 1 + 1 我很赞同! jhy0117 + 1 + 1 谢谢@Thanks! echoaku + 1 + 1 谢谢@Thanks! 石淞元 + 1 已经下载好好学习下, 'close2').click()time.sleep(1)driver.find_element(By.ID, https://sso.icve.com.cn/data/userLogin,Cookie: ftoken={oktoken};,。

type: 1}headers = {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML。

任课教师, 课程名, like Gecko) Chrome/111.0.0.0 Safari/537.36}token = json.loads(requests.request(POST, i[ext1]。

i[ext9]])table.add_row([k, info['data']['employeeNumber'], 课程ID])for i in info[page][items][0]['info']:classok.append([i[ext1], 'close4').click()except:out(预防性点击可能出现的提示框)time.sleep(4)if * 校验登录状态 in driver.page_source:time.sleep(3)driver.find_element(By.ID,共同学习, {'source': string})driver.get('https://sso.icve.com.cn/sso/auth?mode=simplesource=2redirect=https://user.icve.com.cn/cms/')time.sleep(1)driver.find_element(By.ID, 学校])table.add_row([info['data']['displayName'], 城市, 学号, headers=headers, encoding='utf-8') as f:string = f.read()# 移除 selenium 中的爬虫特征driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument','{:.2%}'.format((len(videotasker) + len(doctasker)) / (vodall + docall))])print(table)out(开始执行视频任务序列)for i in videotasker:time.sleep(2)driver.execute_script(i)while True:if 'id=mainFrame name=mainFrame' in driver.page_source: # 利用死循环进入播放器框架 吐槽一下职教云辣鸡代码driver.switch_to.frame('mainFrame')breakwhile True:time.sleep(random.randint(3, https://user.icve.com.cn/patch/zhzj/api_getUserInfo.action, i[ext9]])k = k + 1print(table)watch.Watch(userName, False)# 屏蔽保存密码提示框prefs = {'credentials_enable_service': False,info['data'][schoolName]])print(table)out(开始获取课程信息!)url = https://user.icve.com.cn/learning/u/userDefinedSql/getBySqlCode.jsonpayload = data=infopage.searchItem.queryId=getStuCourseInfoByIdpage.searchItem.keyname=page.curPage=1page.pageSize=500headers = {Content-Type: application/x-www-form-urlencoded; charset=UTF-8, i[ext4], 本帖最后由 Pastwill 于 2023-4-2 18:57 编辑 一.前言 该脚本用于智慧职教的自动学习, headers=headers).text)if token[msg] == ok:out(恭喜登陆成功!)global oktokenoktoken = token[data]else:out(登陆失败!)sys.exit()out(开始尝试登陆!)payload = f'token={token[data]}'headers = {Content-Type: application/x-www-form-urlencoded; charset=UTF-8}info = json.loads(requests.request(POST。

即将下一个)driver.switch_to.parent_frame()breakout(开始执行文档任务序列)for i in doctasker:time.sleep(2)driver.execute_script(i)print(f'观看:{driver.execute_script(return document.title)}')time.sleep(7)out(观看完成, options=options)with open('stealth.min.js',共获提升! yjn866y + 1 + 1 谢谢@Thanks! 查看全部评分 ,password: password,共同进步, 'userName').send_keys(userName)time.sleep(1)driver.find_element(By.ID。

文档已完成/全部, password。

['enable-automation'])# 屏蔽以开发者运行提示框options.add_experimental_option('useAutomationExtension',如若认为有些用处请给予回复与评分, info['data']['province'],使用selenium框架以及requests库, classId):options = webdriver.ChromeOptions()options.add_experimental_option('excludeSwitches', data=payload, 'isTy').click()time.sleep(1)driver.find_element(By.CLASS_NAME, 'dl').click()time.sleep(1)try:driver.find_element(By.ID, 'close1').click()time.sleep(1)driver.find_element(By.ID, json=payload, 'close3').click()time.sleep(1)driver.find_element(By.ID, headers=headers).text)classok = []k = 0table = PrettyTable([编号, 7))look = driver.execute_script('return document.getElementById(screen_player_time_1).textContent')print(f'观看:{driver.execute_script(return document.title)} 已观看到{look}')time.sleep(10) # 十秒输出if look == driver.execute_script('return document.getElementById(screen_player_time_2).textContent'):out(观看完成。

url,严禁用于其他用途。

'profile.password_manager_enabled': False}options.add_experimental_option('prefs', classok[int(input(请选择您要执行的课程编号))][2])if __name__ == '__main__':login() [Python] 纯文本查看 复制代码 #watch.pyimport randomimport timefrom lxml import etreefrom prettytable import PrettyTablefrom selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.common.by import Bydef out(text): # 格式输出print(time.strftime(f[%Y-%m-%d %H:%M:%S]:{text},谢谢 Colorfulone + 1 + 1 用心讨论,即将下一个)videotasker = etree.HTML(driver.page_source).xpath('//*[@completestate=0 and @itemtype=video]/@onclick')doctasker = etree.HTML(driver.page_source).xpath('//*[@completestate=0 and @itemtype=doc]/@onclick')vodall = len(etree.HTML(driver.page_source).xpath('//*[@itemtype=video]/@onclick'))docall = len(etree.HTML(driver.page_source).xpath('//*[@itemtype=doc]/@onclick'))if (len(videotasker) + len(doctasker)) == (vodall + docall):out(恭喜 本课全部观看完成 程序退出!)exit() github: https://github.com/Past-GuoWang/icvepass 完整环境:https://www.123pan.com/s/CW2DVv-deHBh.html提取码:s6ZU 免费评分 参与人数 9 吾爱币 +15 热心值 +8 理由 苏紫方璇 + 7 + 1 欢迎分析讨论交流,代码中使用了许多面向过程写法。

preferences)options.binary_location = r'Chrome\App\Chrome.exe'driver = webdriver.Chrome(service=Service(r'chromedriver.exe')。

like Gecko) Chrome/111.0.0.0 Safari/537.36}info = json.loads(requests.request(POST,webrtc.nonproxied_udp_enabled: False}# 关闭webrtc 避免找到真实IP地址options.add_experimental_option(prefs, time.localtime()))def Watch(userName,欢迎指出不足缺点, f{docall - len(doctasker)}/{docall},仅做个人学习使用, password, time.localtime()))'''登陆并返回token'''def login():payload = {userName: userName, i[ext4], mode='r',webrtc.multiple_routes_enabled: False,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,欢迎有能力的大佬进行优化, prefs)# chrome 88 或更高版本的反爬虫特征处理options.add_argument('--disable-blink-features=AutomationControlled')# 浏览器对象preferences = {webrtc.ip_handling_policy: disable_non_proxied_udp,params=payload).text)if 成功 in info['errorMsg']:out(个人信息获取成功)table = PrettyTable([姓名, 'password11').send_keys(password)time.sleep(1)driver.find_element(By.ID。

二.开发环境 windows 11 Python 3.10 x86 三.调用模块 [Python] 纯文本查看 复制代码 import jsonimport sysimport timeimport requestsimport watchfrom prettytable import PrettyTable [Python] 纯文本查看 复制代码 import randomimport timefrom lxml import etreefrom prettytable import PrettyTablefrom selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.common.by import By 四.代码 [Python] 纯文本查看 复制代码 #app.pyimport jsonimport sysimport timeimport requestsfrom prettytable import PrettyTableimport watch# 全局变量区userName = password = '''控制台日志输出脚本'''def out(text):print(time.strftime(f[%Y-%m-%d %H:%M:%S]:{text}。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。