当前位置: 首页 > wzjs >正文

qq做兼职给网站给你学做网站多长时间

qq做兼职给网站给你,学做网站多长时间,全国做的最棒的网站,寻花问柳-专注做一家男人的网站chromedp chromedp 是一个用于 Chrome 浏览器的自动化测试工具,基于 Go 语言开发,专门用于控制和操作 Chrome 浏览器实例。 chromedp 安装 go get -u github.com/chromedp/chromedp基于chromedp 实现的的简易学习通刷课系统 目前实现的功能&#xff…

chromedp

chromedp 是一个用于 Chrome 浏览器的自动化测试工具,基于 Go 语言开发,专门用于控制和操作 Chrome 浏览器实例。

chromedp 安装

go get -u github.com/chromedp/chromedp

基于chromedp 实现的的简易学习通刷课系统

目前实现的功能:

  1. 自动登录,找到课程中第一个没刷的课
  2. 视频播放意外暂停时,自动恢复播放
package mainimport ("context""fmt""log""time""github.com/chromedp/chromedp"
)func main() {// 1. 创建有界面的浏览器选项opts := append(chromedp.DefaultExecAllocatorOptions[:],chromedp.Flag("headless", false),chromedp.Flag("start-maximized", true),chromedp.UserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"),)// 2. 创建上下文allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)defer cancel()ctx, cancel := chromedp.NewContext(allocCtx, chromedp.WithLogf(log.Printf))defer cancel()// 3. 运行主流程err := chromedp.Run(ctx,// 登录流程chromedp.Navigate("课程url"), // 替换为要刷的课的urlchromedp.WaitVisible(`#phone`, chromedp.ByID), chromedp.SendKeys(`#phone`, "账号", chromedp.ByID), // 替换为自己的账号chromedp.SendKeys(`#pwd`, "密码", chromedp.ByID),	// 替换为自己的密码chromedp.Click(`#loginBtn`, chromedp.ByID),chromedp.Sleep(3*time.Second),// 开始学习流程startLearningProcess(),)if err != nil {log.Fatal("运行失败: ", err)}
}func startLearningProcess() chromedp.Action {return chromedp.ActionFunc(func(ctx context.Context) error {// 1. 点击第一个待完成任务if err := chromedp.Run(ctx,chromedp.WaitVisible(`.catalog_points_yi`, chromedp.ByQuery),chromedp.Click(`.posCatalog_select:has(.catalog_points_yi) .posCatalog_name`, chromedp.NodeVisible),chromedp.Sleep(2*time.Second),); err != nil {return fmt.Errorf("点击任务失败: %w", err)}// 2. 处理视频播放if err := handleVideoPlayback(ctx); err != nil {return fmt.Errorf("视频处理失败: %w", err)}// todo 视频结束后自动刷题return nil})
}func handleVideoPlayback(ctx context.Context) error {// 尝试点击播放按钮if err := chromedp.Run(ctx,chromedp.Click(`//button[@class="vjs-big-play-button"]`, chromedp.NodeVisible),chromedp.Sleep(3*time.Second),); err != nil {log.Println("未能点击播放按钮,可能已自动播放:", err)}// 监控视频状态for {var videoState struct {CurrentTime float64 `js:"currentTime"`Duration    float64 `js:"duration"`Ended       bool    `js:"ended"`Paused      bool    `js:"paused"`}var result []interface{}err := chromedp.Evaluate(`var video = document.getElementById('iframe').contentWindow.document.querySelector(".ans-attach-online").contentWindow.document.getElementById('video_html5_api');[video.currentTime,video.duration,video.ended,video.paused]
`, &result).Do(ctx)videoState.CurrentTime = result[0].(float64)videoState.Duration = result[1].(float64)videoState.Ended = result[2].(bool)videoState.Paused = result[3].(bool)if err != nil {return fmt.Errorf("获取视频状态失败: %w", err)}if videoState.Duration == 0 {log.Println("等待视频加载...")time.Sleep(3 * time.Second)continue}log.Printf("视频进度: %.1f/%.1f秒, 已暂停: %v, 已结束: %v",videoState.CurrentTime, videoState.Duration, videoState.Paused, videoState.Ended)if videoState.Ended {log.Println("视频播放结束")return nil}if videoState.Paused {log.Println("检测到视频暂停,尝试恢复播放...")if err := chromedp.Run(ctx,chromedp.Evaluate(`document.getElementById('iframe').contentWindow.document.querySelector(".ans-attach-online").contentWindow.document.getElementById('video_html5_api').play()`, nil),); err != nil {log.Println("恢复播放失败:", err)}}time.Sleep(10 * time.Second) // 每10秒检查一次}
}

课程url为该页面的url:
在这里插入图片描述


文章转载自:

http://HozEb4Uu.ktfnj.cn
http://WS20yJv7.ktfnj.cn
http://jfK74O3x.ktfnj.cn
http://qZjBvj57.ktfnj.cn
http://73ktFfmI.ktfnj.cn
http://JzEUXCl9.ktfnj.cn
http://azYtTwIK.ktfnj.cn
http://iImAeq04.ktfnj.cn
http://Ii7QAkMX.ktfnj.cn
http://Ukdaf6Wt.ktfnj.cn
http://2Vhljld8.ktfnj.cn
http://uGi1HIvL.ktfnj.cn
http://KTEDXOcs.ktfnj.cn
http://8G8gr1Ft.ktfnj.cn
http://d3b0zb8g.ktfnj.cn
http://nKiBeOtS.ktfnj.cn
http://pBwtUtPh.ktfnj.cn
http://y9sKYy7P.ktfnj.cn
http://cj7mryF3.ktfnj.cn
http://PYMyYMw0.ktfnj.cn
http://uUZigcXA.ktfnj.cn
http://82Pju3JP.ktfnj.cn
http://btRBblNx.ktfnj.cn
http://oRNOf9a0.ktfnj.cn
http://BF5Kn21W.ktfnj.cn
http://JYf6qiob.ktfnj.cn
http://Z5h1ewfw.ktfnj.cn
http://2ZRfr0Sd.ktfnj.cn
http://jvJDBb2X.ktfnj.cn
http://iNYafXFj.ktfnj.cn
http://www.dtcms.com/wzjs/715688.html

相关文章:

  • 桂林做手机网站设计外贸仿牌网站被封的后果
  • 哈尔滨如何快速建站wordpress优惠码插件
  • 怎么做动漫照片下载网站应用商城下载
  • 高端企业网站建设制作广东莞业工程设计有限公司
  • 企业网站开发前后台模块设计企业策划是什么意思
  • 平面设计培训网站大全家在深圳光明
  • 网站建设效果如何做网站 代码
  • 电商网站项目经验介绍开网站设计公司多少钱
  • 汽车app网站建设wordpress 本地上传服务器
  • 网站里的动画效果图360免费建站搜索引擎收录吗
  • asp.net网站建设ppt网站后台修改图片集顺序
  • 网站备案取消接入企业网站制作设计公司
  • 烟台网站建设外贸wordpress分类编辑器
  • 建设银行网站账户注销私密浏览器官网
  • 广西网站设计服务腾讯企业邮箱官网登录入口网页版
  • 分类网站开发ios6软件下载网站
  • 建设部职称证书查询官方网站怎样设计静态网站页面
  • 最优的手机网站建设云南网站的设计公司
  • 网站建设 技术支持 阿里搜狗seo快速排名公司
  • 临清网站建设网站制作过程中碰到的问题
  • 网站建设步骤详解网站建设软件开发公司
  • 用rp怎么做网站功能按钮阿里云网站建设教程视频
  • 四川住房建设部网站利用网站做淘宝客
  • 学习网站开发流程wordpress仿站实战
  • 购买网站建站wordpress 增加 导航栏
  • 网站公司名称大全天使投资平台官网
  • 公司手机网站模板学做古典家具网站
  • 云主机搭建网站网站制作问题 图片版权
  • 成都自助建站软件长春网络优化最好的公司
  • 佛山网站建设永网上海平台公司