Spring Boot+MyBatis课程网站设计与实现:覆盖资源、作业与答疑
简介基于网络的操作系统课程教学网站设计与实现源码包是一套完整的Java毕业设计项目面向计算机专业学生以及需要快速搭建在线教学平台的开发者。项目围绕课程讲义、视频教程、在线测试、答疑解惑、作业提交和成绩查询等核心功能展开并内置成绩管理系统支持成绩录入、修改、查询与统计分析完整呈现了从页面展示到数据库操作的实现过程。压缩包内共有五百零二个文件其中包含一百八十三个动态演示图、一百二十五张网页页面、一百零一个备份文件另有若干程序源码、样式表、数据库文件、依赖库及说明文档整体大小为八点五七兆文件类型丰富便于对照学习前后端逻辑与备份恢复机制。目前已有三十八人学习下载适合希望理解服务端与数据库交互、参考完整系统设计或进行二次开发的读者。1. 需求定位操作系统课程教学网站要解决的三个管理难题操作系统课程的日常远比教材上的调度算法具体得多课件发放、实验通知、作业催收、错题答疑每一件都散落在不同工具里。做 Java 毕业设计时选这个题目不只是做一个能跑的 CRUD而是要把“课程资源、作业闭环、答疑讨论”收拢到一个 Web 系统里让教师少在群文件里翻记录让学生少在聊天记录里找作业要求。这套操作系统课程教学网站核心目标就是解决这三个管理难题。这份资源面向两类人一是打算拿 Java 做毕设或课设的学生需要一套结构完整的源码做参考从建表到答辩演示都能对得上逻辑二是想把课程网站快速用起来的教学负责人看重它能不能直接改配置就运行权限和作业流程是否完整。下文按需求、设计、实现、验收的顺序展开拿到源码之后可以按章节对应着看。2. 总体架构设计Spring Boot 三层结构与八张核心数据表先交代结论这个系统用 Spring Boot MyBatis Layui 做前后端不分离服务端渲染页面。选择这个组合的原因在毕业设计答辩里最容易讲清楚——Spring Boot 内嵌 Tomcat打包一个 jar 就能部署演示的时候不会因为环境配置翻车MyBatis 的 Mapper XML 把 SQL 摆在明面上涉及数据库的工作量可以量化讲给评委听Layui 自带表格、弹窗、表单组件做管理端界面花的时间最少。对课程网站这种后台管理系统这个前端栈足够用不用给自己增加额外学习负担。如果换一个视角看这道题它和常见的“学生管理系统、课程管理系统”最大的不同是多了两个业务闭环作业从发布到提交再到批改统计以及课程维度的答疑讨论。这意味着架构上不能只做单表操作事务边界要在 Service 层想清楚数据表之间也要用关联关系约束住。2.1 技术选型为什么是 Spring Boot MyBatis Layui这个组合在高校毕设里出镜率很高因为它正好踩在“能演示、能查错、能回答提问”三个点上。Spring Boot 负责把配置量压下来application.yml 里写数据源、端口、上传路径剩下的交给自动装配MyBatis 让 SQL 可见答辩时评委问某个列表怎么查的直接翻 Mapper XML 就能逐步解释Layui 解决页面美观度的面子问题表格分页、表单验证、弹窗都是现成组件不需要手写大量 JavaScript 去调 DOM。这里要特别说明一个取舍前后端不分离控制器返回页面路径和模型数据给模板引擎渲染接口只在内部分页查询时返回 JSON。好处是页面代码和接口在同一工程里部署时拷一份 jar 就完事代价是模板文件里会混入部分 JS 渲染逻辑这个代价在课程网站规模下完全能接受。如果你后面要把它改造成前后端分离接口层已经被 Result 结构统一包住了直接加 RestController 版本即可。2.2 分层设计Controller、Service、Dao 的职责边界分层采用标准的 Controller → Service → Dao 三层不引入多余抽象。Controller 只做参数接收、调用 Service、返回视图或 JSONService 承载业务规则比如“发布作业的同时生成一条站内通知”这类联动逻辑Dao 是 MyBatis Mapper 接口SQL 写在 XML 中。为了让前后端交互风格一致我统一定义一个返回结构 Result成功时携带数据失败时携带提示消息页面端通过 code 字段判断。public class ResultT { private Integer code; // 1 成功0 失败 private String msg; private T data; public static T ResultT success(T data) { ResultT r new Result(); r.code 1; r.data data; return r; } public static T ResultT error(String msg) { ResultT r new Result(); r.code 0; r.msg msg; return r; } }这段代码有三个细节需要留意。第一code 不是 HTTP 状态码而是业务状态码前端回调里永远先判断 result.code 再决定渲染什么第二错误消息直接面向用户展示所以 Service 层不要把空指针异常抛到页面上而是转换成 Result.error 返回第三泛型让分页数据、课程列表、提交结果都能复用同一套返回。用了这个统一结构前后端联调时几乎不用为每种请求单独定协议。2.3 数据库设计八张核心表与字段级说明数据库按业务对象拆成八张表用户表、课程表、学生选课关系表、章节表、资源表、作业表、作业提交表、答疑表再加上一张公告表实际是九张。用户和课程是多对多关系学生可以选多门课课程下有多名学生所以中间加一张选课关联表作业提交表同时关联作业和学生并加了唯一约束防止重复提交。表名关键字段作用t_userid, username, password, real_name, role, create_time学生/教师/管理员三种角色t_courseid, course_name, course_code, teacher_id, description课程主体信息t_course_studentid, course_id, student_id学生选课关系t_chapterid, course_id, chapter_name, chapter_order课程章节t_resourceid, chapter_id, resource_name, file_url, file_size课件/视频资源t_homeworkid, course_id, title, content, deadline作业定义t_homework_submitid, homework_id, student_id, content, score, status提交与批改结果t_discussid, course_id, user_id, content, parent_id课程答疑parent_id 表示回复关系这个表结构的要点在于 status 和 parent_id 两个字段。作业提交表的 status 用 0 表示待批改、1 表示已批改教师批改时只更新分数和评语不删除原始提交这样成绩统计时有一条完整的记录链答疑表的 parent_id 为 0 表示根楼层非 0 表示回复某一层用一条自关联就能把问答串成两层结构不必为“追问”单开一张表。3. 核心模块实现一用户权限与课程资源管理怎么做才不返工课程网站最常见的返工场景是代码写完才发现权限像个筛子任何人都能打开教师上传页面任何人都能改别人的作业。所以第一步先把权限边界画清楚。用户表里的 role 字段取 1、2、3分别代表学生、教师、管理员登录成功后把当前用户放进 Session之后所有接口在执行前先查 Session再判断角色是否匹配权限不匹配直接拒绝访问。这里不引入 Spring Security而是用拦截器自己实现核心原因是毕业设计需要你把每个概念都说得出来。Security 的 FilterChain 对初学者来说是个黑匣子一旦答辩被追问认证流程具体怎么走的往往讲不清而拦截器版本链路短、代码在自己手里出问题十分钟能定位答追问时也能一条条列清楚。3.1 拦截器方案三种角色的菜单过滤与会话处理public class LoginInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { User loginUser (User) request.getSession().getAttribute(loginUser); if (loginUser null) { response.sendRedirect(request.getContextPath() /login); return false; } // 学生访问教师功能时直接拒绝并提示无权访问 if (1.equals(loginUser.getRole()) request.getRequestURI().contains(/teacher/)) { response.sendError(403, 学生无权访问教师功能); return false; } return true; } }注册拦截器时注意排除路径登录接口、静态资源、上传访问路径都要放行否则会出现页面样式丢失、图片 404 这种看起来莫名其妙的状况。菜单部分用模板条件渲染来实现管理员看到用户管理教师看到课程管理学生看到选课和作业列表三套菜单写在一份模板里用 role 字段判断显示哪一组。这样做的好处是新增一个角色时只改菜单模板不需要重新写一套页面框架。Session 过期处理也值得一提拦截器里判断 loginUser 为空时直接重定向到登录页这是最简单也最不容易出错的方案。如果你用的是 Ajax 异步请求则需要在拦截器里判断是否为异步请求返回 401 状态码而不是重定向否则前端会把登录页的 HTML 当 JSON 解析报一堆解析错误。3.2 课程章节资源管理文件上传的路径设计与静态映射资源管理是课程网站的核心功能。教师上传课件或录播视频时需要先选所属课程再选所属章节每次上传都会生成一条资源记录。这里最容易踩的坑是把文件存到数据库的 BLOB 字段导致数据库体积膨胀、查询变慢。我一般会把文件落在本地磁盘目录数据库只保存相对路径前端展示时拼接访问地址。spring: servlet: multipart: max-file-size: 200MB max-request-size: 500MB upload: dir: D:/files/os-course-upload/Configuration public class WebConfig implements WebMvcConfigurer { Value(${upload.dir}) private String uploadDir; Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(/upload/**) .addResourceLocations(file: uploadDir); } }Windows 下路径一定要写 file: 前缀否则映射不生效Linux 部署时把 upload.dir 改成 /data/os-course-upload/目录结尾要带斜杠。上传接口里要限制文件类型和文件大小文件名用 UUID 重命名再保存避免中文名和空格导致 URL 编码问题。视频资源建议单独记录时长字段列表中展示时长能给学生更直观的观看预期课件则记录文件大小列表页排序时按章节顺序和上传时间倒序展示。public String upload(RequestParam(file) MultipartFile file, RequestParam(chapterId) Integer chapterId, Model model) { if (file.isEmpty()) { return Result.error(文件不能为空).toString(); } String ext StringUtils.getFilenameExtension(file.getOriginalFilename()); HashSetString allow new HashSet(Arrays.asList(pdf, ppt, pptx, mp4, zip)); if (!allow.contains(ext)) { return Result.error(不支持的文件类型).toString(); } String newName UUID.randomUUID().toString().replace(-, ) . ext; File dest new File(uploadDir newName); file.transferTo(dest); resourceService.saveResource(chapterId, newName, file.getSize()); return Result.success(上传成功).toString(); }保存资源时还有一个小细节数据库里记录的应该是相对路径 newName而不是绝对路径 D:/files/os-course-upload/xxx.mp4。这样部署环境变了也不需要改数据库里的数据只改 upload.dir 配置就行。页面展示时统一通过 /upload/xxx.mp4 拼接访问这个拼接逻辑封装在 ResourceService 的一个方法里别在页面模板里到处写后期改存储方案时会感谢当初这个封装。4. 核心模块实现二作业闭环与在线答疑的事务与状态处理作业是操作系统课程教学网站里业务闭环最完整的功能。从教师发布作业到学生提交再到教师批改与成绩导出四个环节每个都有状态流转。我用一张 homework 表和一张 homework_submit 表承担整个链路任何操作都只改状态、不改历史记录这样成绩统计和回溯时都有据可查。4.1 作业闭环发布、提交、批改与成绩导出的状态流转发布作业是纯插入操作注意 deadline 字段用 datetime 类型校验时统一取服务器时间。提交作业是事务性操作先查询课程与作业是否存在、是否已过截止时间再查询该学生是否已有提交记录若存在则走更新否则走插入。这里有两个容易翻车的地方一是学生端可以随意修改本地时间所以截止判断必须由后端用 new Date() 完成二是重复提交必须用 homework_id student_id 定位已有记录否则会出现一人多条提交。Service public class HomeworkService { Transactional(rollbackFor Exception.class) public void submit(HomeworkSubmit submit) { Homework homework homeworkMapper.findById(submit.getHomeworkId()); if (homework null) { throw new ServiceException(作业不存在); } if (homework.getDeadline().before(new Date())) { throw new ServiceException(已过截止时间无法提交); } HomeworkSubmit exists submitMapper.findByHomeworkAndStudent( submit.getHomeworkId(), submit.getStudentId()); if (exists ! null) { submit.setId(exists.getId()); submitMapper.updateById(submit); } else { submitMapper.insert(submit); } } }这段 Service 代码是作业模块的核心逻辑。第一处异常直接抛给 Controller 统一处理成 Result.error 返回前端弹窗提示原因第二处先查再写的写法保证了同一个学生多次提交只产生一条记录教师批改结果不会被覆盖。批改阶段教师看到待批列表给分并填评语提交表 status 从 0 变成 1同时记录批改时间。成绩导出使用 Apache POI 生成 xlsx导出时按课程汇总每个学生的作业分数、平均分与提交状态。一个容易忽略的细节是日期格式POI 默认数值格式会把日期显示成数字需要在写入单元格时显式设置日期格式。导出文件名加上时间戳避免同名文件互相覆盖。4.2 在线答疑课程维度下的一级帖子与追问回复答疑区以课程为隔离维度学生只能查看自己选课范围内的讨论。表结构里 parent_id0 表示根帖子回复时带上被回复帖子的 id列表查询先查根帖子再根据 id 集合查询回复并按时间拼装。这样设计的原因是前端渲染一棵完整树比较复杂两层嵌套足够覆盖常见的“提问-追问-回答”场景学生端使用成本也最低。SELECT d.*, u.real_name FROM t_discuss d LEFT JOIN t_user u ON d.user_id u.id WHERE d.course_id #{courseId} ORDER BY d.create_time ASC拼装逻辑注意一个细节根帖子默认显示全部回复页面用 create_time 排序就能保证讨论的先后顺序。如果后面要做“老师回复提醒”在 t_discuss 里加一个 is_teacher_replied 字段当回复者的 role 为教师时置为 1学生端列表页就能显示“已回复”标记用不上复杂的消息推送。发布回复时同样要校验课程 id防止学生通过改请求参数跨课程发帖。5. 常见问题排查五个最容易翻车的坑与现场补救手段这一章把课程网站开发周期里容易让新手卡壳的问题集中整理出来按现象、原因、解法三个步骤展开。这些问题看起来玄学实际上多数是配置路径或状态流转没处理对。5.1 拦截器把静态资源也拦截了现象登录成功进入首页页面全部乱码或灰白F12 看到 css、js 请求全部 302 重定向到登录页。原因拦截器注册时没有排除 /static、/layui、/upload 等路径导致浏览器请求静态资源也被当作未登录处理。解法在 addInterceptors 里追加资源排除路径把 /css/、/js/、/layui/、/upload/、/login 都列进去。改完重启服务再测试重点确认首页是否带样式加载。5.2 文件上传成功但页面图片 404现象控制台显示上传成功数据库中也有 file_url但浏览器访问图片地址提示 404。原因文件实际落在磁盘目录下而浏览器请求的是 /upload/xxx.jpg没有配置静态资源映射Tomcat 找不到这个文件。解法用第 3 章的 addResourceHandlers 配置映射。注意 Windows 下路径前缀写成 file:D:/files/少了 file: 就失效Linux 部署改成 file:/data/。修改完清理浏览器缓存再访问。5.3 MyBatis 报 Invalid bound statement现象调用 Mapper 接口方法时抛 BindingException提示 xxxMapper.xxx not found检查代码觉得哪都没错。原因常见是 Mapper 接口和 XML 文件不在同一个包路径下或者 XML 里的 namespace 与接口全限定名不一致另一种情况是 XML 没有被编译进 target/classes。解法先确认两者同包同名再检查 namespace 完全等于接口全限定名最后去 target/classes 目录下看有没有对应 XML。没有就在 pom.xml 的 resources 节点里把 mapper 目录加进去然后重新编译。5.4 作业超时后学生还能提交现象明明过了展示截止时间学生换个浏览器或改本地时间后仍能提交成功。原因前端只是隐藏了提交按钮后端没有再次校验或者校验时使用了客户端传入的字符时间与截止时间比较。解法后端统一用 new Date() 取服务器时间与 homework.deadline 比较客户端时间只做展示不做判断依据。这条在答辩时可以作为设计亮点主动讲出来说明你考虑了数据一致性。5.5 同一个学生提交多条作业记录成绩统计错乱现象作业列表里同一位学生出现多条提交教师打分后成绩汇总翻倍。原因提交逻辑没有先按 homework_id student_id 查已有记录而是无条件插入新数据。解法Service 层先用 homework_id 和 student_id 查记录存在则更新同时对 t_homework_submit 建唯一索引。唯一索引是兜底手段即使未来有人改代码绕过先查这一步数据库层也会拒绝重复插入保证数据不会继续恶化。6. 验收与答辩功能清单、十分钟演示顺序与若被追问的两个问题方案写得好不好最后要看能不能在十分钟内演示完并且在三十秒内回答追问。这里给出一份验收清单和演示顺序照着走一遍基本能覆盖核心功能。6.1 验收清单怎么做把每个功能模块拆成“测试动作 → 预期结果”的用例功能测试动作预期结果学生登录输入账号密码跳转主页菜单只出现课程与作业教师上传课件选择章节并上传列表新增记录资源可下载学生提交作业在截止时间前提交提交表新增一条待批记录教师批改给分并写评语状态变为已批学生端可见分数管理员禁用用户点击禁用按钮该用户再次登录被拦截6.2 演示顺序与被追问的问题演示顺序建议从教师端开始因为上传资源、发布作业最能体现系统的业务属性紧接着切到学生端完成看课件、交作业、在答疑区提问的完整链路最后回到教师端做批改与导出成绩用管理员账号收尾展示用户管理页面。被问“为什么不用 Spring Security”时可以说毕业设计的重点是让权限校验过程可解释拦截器版本每一步都暴露在自己代码里排查问题时更直接。被问“文件存哪里了”指向配置的 upload.dir并解释数据库只保存相对路径、查询时拼接完整 URL这样数据库体积可控备份也更轻量。从那以后我每次演示毕设前都会强制走一遍“学生提交作业、教师批改、导出成绩”的完整链路把每个待测试功能当作用例逐个打勾半小时就能确认系统没有隐藏问题。这份源码和这套验收顺序是一起交付的需要完整源码、初始化 SQL 与答辩资料的直接从资源包里按目录取用即可希望帮到你。本文还有配套的精品资源点击获取

相关新闻

造像Z-image-Turbo:扩散模型少步推理加速与质感保持实战

造像Z-image-Turbo:扩散模型少步推理加速与质感保持实战

最近在优化一套图像生成服务的延迟预算时,我又跟“速度”和“质感”这对老冤家打了照面。图像生成领域的老朋友应该都有同感:步数加上去,画质是稳了,用户端的等待时间也跟着上去了;步数压到两三次,延迟倒是…

2026/10/17 8:23:20 阅读更多 →
华为eNSP核心诊断命令实战:路由、ARP与STP排障链路

华为eNSP核心诊断命令实战:路由、ARP与STP排障链路

1. 项目概述:为什么“ENSP常用简单命令(二)”不是重复劳动,而是实操进阶的关键一环在某高校网络工程实训室带学生做实验时,我常遇到一个典型现象:刚学完“display ip interface brief”“sysname R1”这类基…

2026/10/17 8:23:20 阅读更多 →
Sidecar模式后训练:让本地大模型持续进化的工程实践

Sidecar模式后训练:让本地大模型持续进化的工程实践

本地大模型最尴尬的处境,不是跑不快,而是“永远长不大”。你辛苦部署好一个开源模型,它回答常识问题头头是道,但一问到你自己的项目笔记、工作文档、私人资料,它立刻露馅。YoungAi 这个思路有意思的地方在于&#xff0…

2026/10/17 8:22:20 阅读更多 →

最新新闻

用OpenCV解构视觉错觉:从jagarikin图像提取四大数字指纹

用OpenCV解构视觉错觉:从jagarikin图像提取四大数字指纹

1. 为什么一张静态图能让眼睛“上当”——从jagarikin作品切入视觉错觉的底层机制你有没有在刷社交媒体时,突然被一张图钉住:明明是静止的,却感觉它在旋转;明明线条都是直的,却像波浪一样起伏;明明图案完全…

2026/10/17 9:47:45 阅读更多 →
AI代码安全上线指南:从代码评审到回滚的工程化路径

AI代码安全上线指南:从代码评审到回滚的工程化路径

1. 为什么这个话题突然值得聊"AI 生成的代码,到底能不能直接扔到生产环境?"这句话我最近被问了不下二十次,问的人里有技术合伙人、有传统企业的 IT 总监,也有刚带团队的一线主管。大家的心态很一致:一边被 A…

2026/10/17 9:47:45 阅读更多 →
停电断网不用慌:光猫路由器应急供电与备电方案全解析

停电断网不用慌:光猫路由器应急供电与备电方案全解析

先回答最直接的问题:家里停电后WiFi消失,绝大多数情况下不是你路由器坏了,也不是运营商那边断网了,而是从运营商机房到你家的整条宽带链路上,有一个"电源开关"恰好捏在你手里。光猫要电、路由器要电&#xf…

2026/10/17 9:47:45 阅读更多 →
JMEE联合建模:图神经网络解决事件抽取结构化难题

JMEE联合建模:图神经网络解决事件抽取结构化难题

1. 项目概述:这不是一篇普通论文,而是一套解决“事件抽取”顽疾的协同建模方案你有没有遇到过这样的情况:在处理医疗报告、金融新闻或法律文书时,系统能准确识别出“张三”“心肌梗死”“2023年5月12日”这些实体,却始…

2026/10/17 9:47:45 阅读更多 →
RAG文档加载解析实战:从PDF解析到PGVector向量库入库的关键步骤

RAG文档加载解析实战:从PDF解析到PGVector向量库入库的关键步骤

“文档都没有加载对,后面检索质量再调也是白搭。”这句话是我在一堆RAG项目里踩坑之后最想说的。很多朋友搭RAG知识库,第一个想到的词是向量库、是Embedding、是Prompt,结果真正动手才发现,第一道坎根本不是模型选型,而…

2026/10/17 9:47:45 阅读更多 →
归并排序详解:分治思想、两种实现与工业级应用场景

归并排序详解:分治思想、两种实现与工业级应用场景

提到归并排序,很多人第一反应是“分治法的经典例子”,应付考试和面试背代码用的。但我在实际开发里对它的感情很复杂——它是少有的“最坏情况也让人放心”的排序,可直接实现又容易掉进边界条件的坑里。这篇文章我把归并排序的原理、两种主流…

2026/10/17 9:46:45 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →