脚本喵-刷课脚本分享 脚本喵-刷课脚本分享
首页
刷课脚本
通用教程
网课代学
首页
刷课脚本
通用教程
网课代学
  • 山东省教师教育网刷课脚本分享
  • 北京市继续医学教育全员必修课培训刷课脚本分享
  • 好医生刷课脚本分享
  • 融学国培网chinahrt.com刷课脚本分享
  • 华医网刷课脚本分享
  • 59iedu华博教育系列刷课脚本分享
  • 安溪县中小学、幼儿园教师远程继续教育培训刷课脚本分享
  • 福建省交通运输行业专业技术人员继续教育刷课脚本分享
  • 漳州开放大学非学历培训平台刷课脚本分享
  • 莆田市专业技术人员继续教育公需课培训平台刷课脚本分享
  • 永泰县专业技术人员继续教育网络培训平台刷课脚本分享
  • 四川信息通信人才在线教育平台刷课脚本分享
  • 巴中建设行业从业人员继续教育网络培训平台刷课脚本分享
  • 扬州市网络培训远程教育平台刷课脚本分享
  • 江苏省勘察设计行业继续教育网络培训平台刷课脚本分享
  • 华博教育-甘肃省天水市刷课脚本分享
  • 永安市教师进修校继续教育网络平台刷课脚本分享
  • 平潭综合实验区专业技术人员继续教育网络平台刷课脚本分享
  • 淮安市专业技术人员继续教育网刷课脚本分享
  • 宿迁市专业技术人才继续教育基地刷课脚本分享
  • 莆田市专业技术人员继续教育培训平台刷课脚本分享
  • 甘肃省专技(武威市)刷课脚本分享
  • 闽清县专业技术人员继续教育网络平台刷课脚本分享
  • 华博教育-甘肃省庆阳市刷课脚本分享
  • 福州市教师网络培训平台刷课脚本分享
  • 河南专技学习网刷课脚本分享
  • 广安市建筑技术培训中心刷课脚本分享
  • 甘肃省白银市(卫生行业)专技刷课脚本分享
  • 华博教育-甘肃省定西市刷课脚本分享
  • 福建省专业技术人员继续教育网络平台刷课脚本分享
  • 福建省专业技术人员继续教育基地刷课脚本分享
  • 福建省专业技术与管理人员继续教育刷课脚本分享
  • 甘肃省直专技刷课脚本分享
  • 华博教育-甘肃省陇南市刷课脚本分享
  • 华博教育-甘肃省临夏回族自治州刷课脚本分享
  • 甘肃省嘉峪关专技刷课脚本分享
  • 华博教育-甘肃省白银市刷课脚本分享
  • 八冶建设集团有限公司专业技术人员继续教育刷课脚本分享
  • 德化县专业技术人员继续教育学习网刷课脚本分享
  • 华博教育-金昌市刷课脚本分享
  • 华博教育-甘肃省甘南藏族自治州刷课脚本分享
  • 华博教育-酒泉市刷课脚本分享
  • 漳州职业技术学院专业技术人员继续教育刷课脚本分享
  • 福建省工艺美术专业技术人员继续教育刷课脚本分享
  • 福清市医院专业人员继续教育刷课脚本分享
  • 芯华集成电路人才培训中心专业技术人员继续教育刷课脚本分享
  • 华博教育-河南省会计人员继续教育刷课脚本分享
  • 南平市网络培训远程教育平台刷课脚本分享
  • 大众云学yxlearning系列刷课脚本分享
  • 济南职业学院职业技能提升网络培训平台刷课脚本分享
  • 山东理工职业学院继续教育平台刷课脚本分享
  • 兰州现代职业学院专业技术人员继续教育刷课脚本分享
  • 淄博市专业技术人员继续教育刷课脚本分享
  • 枣庄市专业技术人员继续教育刷课脚本分享
  • 滨州市专业技术人员继续教育刷课脚本分享
  • 新疆生产建设兵团专业技术人员继续教育刷课脚本分享
  • 山东省威海市专业技术人员继续教育刷课脚本分享
  • 山东药品食品职业学院继续教育刷课脚本分享
  • 山东科技职业学院专业技术人员网络学习平台刷课脚本分享
  • 新泰市职业技能提升网络培训平台刷课脚本分享
  • 山东烟台市专业技术人员继续教育刷课脚本分享
  • 济宁市专业技术人员继续教育刷课脚本分享
  • 山东水利行业专业技术人员继续教育刷课脚本分享
  • 山东省大数据工程专业技术人员培训平台刷课脚本分享
  • 临沂市交通运输行业专业技术人员继续教育刷课脚本分享
  • 鲁东大学专业技术人员继续教育刷课脚本分享
  • 临沂市职业技能培训线上平台刷课脚本分享
  • 东营市专业技术人员继续教育刷课脚本分享
  • 大众云学职业技能提升公共服务平台刷课脚本分享
  • 山东交通职业学院专业技术人员继续教育刷课脚本分享
  • 吉林省专业技术人员继续教育培训平台刷课脚本分享
  • 山东大众云学省级继续教育基地刷课脚本分享
  • 威海市职业技能提升网络培训平台刷课脚本分享
  • 山东化工职业学院专业技术人员继续教育刷课脚本分享
  • 山东省快递工程专业技术人员继续教育刷课脚本分享
  • 兵团思想政治工作人员继续教育刷课脚本分享
  • 武威职业学院专业技术人员继续教育刷课脚本分享
  • 日照市专业技术人员继续教育刷课脚本分享
  • 济宁职业技术学院专业技术人员继续教育刷课脚本分享
  • 龙岩市专业技术人员继续教育培训平台刷课脚本分享
  • 潍城区委党校专业技术人员继续教育刷课脚本分享
  • 新疆生产建设兵团残疾人技能提升与创业就业服务平台刷课脚本分享
  • 德州市专业技术人员继续教育刷课脚本分享
  • 泰安市专业技术人员继续教育刷课脚本分享
  • 聊城职业技术学院专业技术人员继续教育刷课脚本分享
  • 内蒙古网络学院刷课脚本分享
  • 凉山州专业技术人员继续教育刷课脚本分享
  • 医世界-医视在线刷课脚本分享
  • 安徽继续教育在线刷课脚本分享
  • 新版陕西省专业技术人员继续教育刷课脚本分享
  • 安徽省卫生从业人员培训平台刷课脚本分享
  • 国家药品安全专业技术人员培训网刷课脚本分享
  • 学习公社刷课脚本
  • 中山教师教育网刷课脚本
  • 浙江省安全生产网络学院刷课脚本
  • 智慧教育培训管理平台刷课脚本
  • 中国医师协会远程教育平台刷课脚本
  • 学达云刷课脚本
  • 数字党校培训平台刷课脚本
  • 广州市中小学教师继续教育网刷课脚本
  • 甘肃省公务员网络培训刷课脚本
  • 聊城市专业技术人员继续教育刷课脚本
  • 医博士刷课脚本
  • 甘肃法宣在线刷课脚本
  • 东奥会计刷课脚本
  • 丽水市建设行业人才继续教育平台刷课脚本
  • 山财培训网刷课脚本
  • 东营市继续教育刷课脚本
  • 河南教师培训网刷课脚本
  • 南京市专业技术人员继续教育刷课脚本
  • 广州东方职业技术培训中心执业药师继续教育刷课脚本
  • 包头市专业技术人员继续教育刷课脚本
  • 内蒙古自治区专业技术人员继续教育刷课脚本
  • 丽水人力社保专业技术人员继续教育培训刷课脚本
  • 北京市专业技术人员公需科目刷课脚本
  • 教师专业发展培训网刷课脚本分享
  • 东财在线大连会计刷课脚本分享
  • 临沂市专业技术人员继续教育刷课脚本分享
  • 浙江水利刷课脚本分享
  • 聊城市会计人员继续教育平台刷课脚本
  • 三亚市专业技术人员继续教育网刷课脚本
  • 中华会计继续教育刷课脚本
  • 西北师范大学中小学教师远程培训网刷课脚本
  • 春宇远程培训平台刷课脚本
  • 浙江省二级建造师继续教育学习网刷课脚本分享
  • 深圳市教师教育网刷课脚本分享
  • 山西省专业技术人员继续教育网络平台刷课脚本分享
  • 督学网络学院-广东分院刷课脚本分享
  • 湖北省专业技术人员继续教育网络平台刷课脚本分享
  • 东北师范大学中小学教师网络培训平台刷课脚本
  • 甘肃智博继续教育专修学院刷课脚本
  • 云继教刷课脚本
  • 济南市会计人员继续教育刷课脚本
  • 南宁市西乡塘中小学幼教师培训网刷课脚本
  • 东财在线-四川省刷课脚本分享
  • 辽宁省干部在线学习网刷课脚本分享
  • 朝阳区教师学习服务平台刷课脚本分享
  • 地大培训在线刷课脚本分享
  • 吉林专技培训平台刷课脚本分享
  • 新疆有色集团培训中心刷课脚本分享
  • 河南省新闻传播专业技术人员继续教育培训服务平台刷课脚本分享
  • 聊城市乡村实用人才培训学院刷课脚本
  • 天津市政工人员继续教育培训网刷课脚本
  • 广东省教育双融双创智慧共享社区刷课脚本
  • 河北药师网刷课脚本分享
  • 汉中职业技术学院-教师在线学习中心刷课脚本分享
  • 河南省教育人才学会网络学院刷课脚本分享
  • 郑东新区实验幼儿园教师研修平台刷课脚本分享
  • 巴中开放大学-专业技术人员继续教育基地刷课脚本分享
  • 校本研修管理平台刷课脚本分享
  • 河南会计人员继续教育刷课脚本分享
  • 天津市执业药师协会刷课脚本分享
  • 张掖市干部在线学习平台刷课脚本分享
  • 高等教育教师专业发展平台刷课脚本分享
  • 甘肃省专业技术人员继续教育网络平台刷课脚本分享
  • 泰安市专业技术人员继续培训平台刷课脚本分享
  • 微山县人民医院(微山县)公需课刷课脚本分享
  • 焦作专技网刷课脚本分享
  • 新疆国家级医学继续教育能力提升平台刷课脚本分享
  • 建设行业人才网络教育平台刷课脚本分享
  • 安徽开放大学教师全员远程培训刷课脚本分享
  • 西安教师培训网刷课脚本分享
  • 迪尔集团有限公司(高新区)公需课刷课脚本分享
  • 广东二师在线刷课脚本分享
  • 新疆兵团卫生专业技术人员法律法规知识培训服务平台刷课脚本分享
  • 贵州执业药师继续教育在线培训刷课脚本分享
    • 青海大学继续教育学院刷课脚本分享
    • 河北干部网络学院刷课脚本分享
    • 曲阜市技工学校(曲阜市)继续教育公需课刷课脚本分享
    • 全国体育传统特色学校体育师资培训平台刷课脚本分享
    • 宁阳县继续医学教育培训网刷课脚本分享
    • 陕西干部网络学院刷课脚本分享
    • 职业成长自动轮播学习脚本分享
    • 和田地区专业技术人员继续教育刷课脚本分享
    • 合肥市中小学、幼儿园教师远程培训刷课脚本分享
    • 内蒙古自治区中医药(蒙医药)继续教育刷课脚本分享
    • 自贡市专业技术人员继续教育学习平台刷课脚本分享
    • 专业技术人才人工智能通识继续教育网络公益课堂刷课脚本分享
    • 周口市专业技术人员继续教育刷课脚本分享
    • 吉林省中盛佳源专技培训网刷课脚本分享
    • 菏泽市继续教育刷课脚本分享
    • 国家中小学智慧教育平台刷课脚本分享
    • 刷课脚本
    脚本喵
    目录

    贵州执业药师继续教育在线培训刷课脚本分享

    代学业务

    如需代学,请点击联系客服

    贵州执业药师 继续教育

    # 写在前面

    上周贵阳的老周在后台留言,说他们那边药店老板要上"贵州执业药师继续教育在线培训",网址是 https://gzzyys-p.webtrn.cn/cms/ 。老周在市区开了家大药房,每年执业药师继续教育是必须要搞的。课程内容翻来覆去就那些,药事法规、临床药学、药品经营质量管理什么的,说重要也重要,但确实挺磨人。

    老周说白天要看店理货,晚上回家累得不行还得完成培训任务,评职称要查学分。他问我有没有省时的办法。

    我研究了一下这个平台,发现跟其他继续教育平台差不多——实名登录、看视频、做测试。视频内容多,他们那边几个药师加起来有几十个小时的课程要刷。我给他弄了个辅助脚本,让视频自动跑、遇到问题自动恢复、播完自动跳下一节。脚本安装地址目前显示暂时下架,有需要的看页面底部联系方式。

    # 平台情况

    贵州执业药师继续教育在线培训,网址是 https://gzzyys-p.webtrn.cn/cms/ ,登录后进入个人中心能看到课程列表。课程分必修和选修两大块,每门课由若干小节组成,每小节看完要做几道练习题,全部通过才能算完成。

    平台视频加载速度还行,不过偶尔会遇到卡顿。防挂机机制主要是检测鼠标键盘活动,超过五六分钟不操作就会暂停视频。视频用的是标准H5方案,对浏览器兼容性不错。

    # 脚本功能

    针对这个平台开发的脚本实现了以下功能:

    视频自动播放,持续监测状态,发现暂停自动恢复。倍速播放可调,默认1.5倍速,完全不影响理解。防挂机检测模拟,每隔一段时间自动模拟用户操作,用随机间隔更接近真人行为。课程自动切换,播完自动检测并点击下一节。静音模式可选,夜间挂机不扰民。视频卡顿自动处理,加载失败自动重试。

    脚本安装地址暂时下架,有需要看页面底部联系方式。

    提示

    如需代学,请联系客服,支持闲鱼交易。

    微信联系:yizhituziang

    QQ联系:2422270452

    - img: /img/weixin.jpg
      name: 微信联系:yizhituziang
    - img: /img/qq.jpg
      name: QQ联系:2422270452
    

    # 使用场景

    第一种是工作繁忙型的,像老周那样白天要看店理货,晚上才能抽空学。脚本挂着让视频自己跑,比干等着强多了。

    第二种是拖延症晚期,去年遵义某读者国庆前两天才想起还有十几节课没刷,连续熬通宵。用脚本加1.5倍速勉强能搞定。

    第三种是内容重复型的,执业药师继续教育每年内容差不多,用脚本挂着可以跳过已经学过的部分。

    # 使用建议

    倍速建议先从1.25倍开始试,感觉影响不大再调到1.5倍。不要一上来就用2倍速,有些内容需要理解记忆,太快了可能跟不上。

    浏览器推荐Chrome或者Edge,这俩对视频支持最好。360浏览器要开极速模式。

    进度方面每隔一两个小时检查一下,虽然脚本会尽量保证进度保存,但万一出问题还能及时发现。

    测试题部分是得自己做,脚本只负责视频部分。不过视频认真看了的话,做题也不会太难。

    # 技术细节

    平台视频是标准video标签,实现起来最简单。主要问题是防挂机检测比较敏感,脚本用了随机时间间隔模拟鼠标移动,间隔在5到10秒之间随机,更接近真人操作。

    进度保存机制是轮询向服务器报告,间隔有长有短,脚本会在关键节点触发额外的保存请求,减少意外关闭时的进度损失。

    # 常见问题

    多标签页同时刷不同课程是不行的,平台会检测同一账号多处登录。倍速设置目前稳定,但不排除以后平台升级会改。脚本安装地址暂时下架,有需要找客服。遇到视频加载不出来可以刷新重试,脚本会自动恢复。

    # 小结

    贵州执业药师继续教育在线培训,网址 https://gzzyys-p.webtrn.cn/cms/ ,脚本能帮你自动完成视频观看部分。倍速建议1.5倍,浏览器推荐Chrome或Edge,安装地址暂时下架需要找其他方式。有问题可以留言,祝学习顺利。

    # 核心代码

    (function() {
        'use strict';
        
        const CONFIG = {
            speed: 1.5,
            checkInterval: 600,
            activityInterval: 7500,
            maxRetryAttempts: 5,
            initialDelay: 3000,
            stallThreshold: 3000,
            randomRangeMin: 5000,
            randomRangeMax: 10000,
            saveInterval: 12000,
            nextClickDelay: 2000
        };
        
        let retryCount = 0;
        let previousTime = 0;
        let stallCounter = 0;
        let activityTimer = null;
        let saveTimer = null;
        let checkTimer = null;
        
        function detectPlatform() {
            const hostname = window.location.hostname;
            if (hostname.includes('gzzyys-p.webtrn.cn')) {
                return 'guizhou';
            }
            return 'unknown';
        }
        
        function getPlatformConfig(platform) {
            const configs = {
                guizhou: {
                    videoSelectors: [
                        'video',
                        '#video-player video',
                        '.video-player video',
                        '[class*="player"] video',
                        '[id*="video"] video'
                    ],
                    nextSelectors: ['.next-btn', '.btn-next', '[class*="next"]', 'button.next', '.next-lesson'],
                    activityInterval: 6500,
                    checkInterval: 550
                }
            };
            return configs[platform] || configs.guizhou;
        }
        
        function locateVideoElement(selectors) {
            for (const selector of selectors) {
                const el = document.querySelector(selector);
                if (el) {
                    return { type: 'html5', element: el };
                }
            }
            
            const iframes = document.querySelectorAll('iframe');
            for (const iframe of iframes) {
                try {
                    for (const selector of selectors) {
                        if (selector.includes('iframe')) continue;
                        const innerEl = iframe.contentDocument.querySelector(selector);
                        if (innerEl) {
                            return { type: 'iframe', element: innerEl, frame: iframe };
                        }
                    }
                } catch (e) {}
            }
            return null;
        }
        
        function waitForVideo(callback, maxAttempts) {
            let attempts = 0;
            const platform = detectPlatform();
            const config = getPlatformConfig(platform);
            
            const interval = setInterval(() => {
                const videoInfo = locateVideoElement(config.videoSelectors);
                if (videoInfo || attempts >= maxAttempts) {
                    clearInterval(interval);
                    callback(videoInfo);
                }
                attempts++;
            }, CONFIG.initialDelay);
        }
        
        function setSpeed(videoInfo, speed) {
            if (!videoInfo) return;
            
            if (videoInfo.type === 'html5' || videoInfo.type === 'iframe') {
                const video = videoInfo.element;
                if (video && video.playbackRate !== speed) {
                    video.playbackRate = speed;
                }
            }
        }
        
        function playVideo(videoInfo) {
            if (!videoInfo) return;
            
            if (videoInfo.type === 'html5' || videoInfo.type === 'iframe') {
                const video = videoInfo.element;
                if (video && video.paused) {
                    video.play().catch(() => {
                        retryCount++;
                        if (retryCount < CONFIG.maxRetryAttempts) {
                            setTimeout(() => playVideo(videoInfo), 2000);
                        }
                    });
                }
            }
        }
        
        function pauseVideo(videoInfo) {
            if (!videoInfo) return;
            
            if (videoInfo.type === 'html5' || videoInfo.type === 'iframe') {
                const video = videoInfo.element;
                if (video && !video.paused) {
                    video.pause();
                }
            }
        }
        
        function getCurrentTime(videoInfo) {
            if (!videoInfo) return 0;
            
            if (videoInfo.type === 'html5' || videoInfo.type === 'iframe') {
                return videoInfo.element ? videoInfo.element.currentTime : 0;
            }
            return 0;
        }
        
        function detectStall(videoInfo) {
            if (!videoInfo) return;
            
            const currentTime = getCurrentTime(videoInfo);
            
            if (videoInfo.type === 'html5' || videoInfo.type === 'iframe') {
                const video = videoInfo.element;
                if (video && !video.paused && currentTime === previousTime && video.readyState > 0) {
                    stallCounter++;
                    if (stallCounter > 2) {
                        pauseVideo(videoInfo);
                        setTimeout(() => {
                            playVideo(videoInfo);
                            stallCounter = 0;
                        }, 1000);
                    }
                } else {
                    stallCounter = 0;
                }
            }
            
            previousTime = currentTime;
        }
        
        function generateRandomInterval(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
        
        function simulateActivity() {
            const activities = [
                { type: 'mousemove', options: { bubbles: true, cancelable: true, clientX: Math.random() * window.innerWidth, clientY: Math.random() * window.innerHeight } },
                { type: 'click', options: { bubbles: true, cancelable: true } },
                { type: 'keydown', options: { bubbles: true, cancelable: true } },
                { type: 'scroll', options: { bubbles: true, cancelable: true } }
            ];
            
            const activity = activities[Math.floor(Math.random() * activities.length)];
            
            if (activity.type === 'scroll') {
                window.scrollBy({
                    top: Math.random() * 100,
                    left: 0,
                    behavior: 'smooth'
                });
            } else {
                document.dispatchEvent(new MouseEvent(activity.type, activity.options));
            }
        }
        
        function startRandomActivity(interval) {
            if (activityTimer) clearInterval(activityTimer);
            
            activityTimer = setInterval(() => {
                simulateActivity();
            }, interval);
        }
        
        function findNextButton(selectors) {
            for (const sel of selectors) {
                const btn = document.querySelector(sel);
                if (btn && btn.offsetParent !== null && !btn.disabled) {
                    return btn;
                }
            }
            
            const allButtons = document.querySelectorAll('button');
            for (const btn of allButtons) {
                const text = btn.textContent.toLowerCase();
                if ((text.includes('下一') || text.includes('next') || text.includes('继续')) && 
                    btn.offsetParent !== null && !btn.disabled) {
                    return btn;
                }
            }
            return null;
        }
        
        function triggerProgressSave() {
            const saveButtons = document.querySelectorAll('[class*="save"], [class*="submit"], button.save');
            saveButtons.forEach(btn => {
                if (btn.offsetParent !== null) {
                    btn.click();
                }
            });
        }
        
        function setupAutoSave(interval) {
            if (saveTimer) clearInterval(saveTimer);
            
            saveTimer = setInterval(() => {
                triggerProgressSave();
            }, interval);
        }
        
        function handleVideoEnded(videoInfo) {
            const platform = detectPlatform();
            const config = getPlatformConfig(platform);
            
            setTimeout(() => {
                const nextBtn = findNextButton(config.nextSelectors);
                if (nextBtn) {
                    nextBtn.click();
                }
            }, CONFIG.nextClickDelay);
        }
        
        function start(videoInfo) {
            if (!videoInfo) return;
            
            const platform = detectPlatform();
            const config = getPlatformConfig(platform);
            
            setSpeed(videoInfo, CONFIG.speed);
            playVideo(videoInfo);
            
            checkTimer = setInterval(() => {
                setSpeed(videoInfo, CONFIG.speed);
                detectStall(videoInfo);
            }, config.checkInterval);
            
            startRandomActivity(config.activityInterval);
            setupAutoSave(CONFIG.saveInterval);
            
            if (videoInfo.type === 'html5' || videoInfo.type === 'iframe') {
                videoInfo.element.addEventListener('ended', () => handleVideoEnded(videoInfo));
            }
            
            const observer = new MutationObserver(() => {
                setSpeed(videoInfo, CONFIG.speed);
            });
            
            observer.observe(document.body, {
                childList: true,
                subtree: true
            });
        }
        
        function initialize() {
            const platform = detectPlatform();
            
            if (platform === 'unknown') {
                console.log('未识别平台,使用默认配置');
            } else {
                console.log('检测到平台:', platform);
            }
            
            waitForVideo(videoInfo => {
                if (videoInfo) {
                    console.log('视频元素已找到,开始自动化');
                    start(videoInfo);
                } else {
                    console.log('未找到视频元素');
                }
            }, 20);
        }
        
        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', initialize);
        } else {
            initialize();
        }
        
        window.addEventListener('beforeunload', () => {
            if (saveTimer) clearInterval(saveTimer);
            if (activityTimer) clearInterval(activityTimer);
            if (checkTimer) clearInterval(checkTimer);
        });
    })();
    
    #贵州执业药师继续教育#执业药师培训#gzzyys-p.webtrn.cn
    新疆兵团卫生专业技术人员法律法规知识培训服务平台刷课脚本分享
    青海大学继续教育学院刷课脚本分享

    ← 新疆兵团卫生专业技术人员法律法规知识培训服务平台刷课脚本分享 青海大学继续教育学院刷课脚本分享→

    最近更新
    01
    周口市专业技术人员继续教育刷课脚本分享
    02
    吉林省中盛佳源专技培训网刷课脚本分享
    03
    菏泽市继续教育刷课脚本分享
    更多文章>
    Copyright © 2025-2026
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式