面向课堂考勤场景的桌面端人脸识别签到系统

1.整体框架:

系统没有用前后端分离,是纯 Python 实现的桌面端应用:

  • 核心能力用Dlib库实现:人脸检测、68 关键点定位、128 维人脸特征提取、特征匹配
  • 界面用Tkinter做桌面 GUI,操作简单,不需要浏览器 / 服务器
  • 数据存在本地:人脸图片存在../data/database_faces/按姓名分文件夹,考勤记录存在../data/attendance.csv

2.页面内容:

1. 第一个选项卡:「人脸识别」→ 老师上课签到用的核心页面

这是系统使用率最高的页面,上课的时候老师打开这个页面就能完成自动签到:

核心逻辑(复试可以提的细节):
  • 识别到人脸后会自动和本地人脸库比对,欧氏距离小于0.4就判定为同一个人,识别成功自动记录考勤,当天同一个人只会记一次,不会重复弹窗
  • 未知人脸会标红显示「未知」,避免陌生人误签到
  • 支持离线使用,不需要联网,适合教室无网的场景
核心逻辑:
  • 每次点击更新,系统会自动遍历人脸库文件夹,重新提取所有人的 128 维特征,更新到内存里,保证识别的时候用的是最新的人脸库
  • 删除的时候会直接删掉对应学生的人脸文件夹,不会残留垃圾数据
核心逻辑(复试可以提的小优化):
  • 录入人脸的时候会自动扩大 10 像素的人脸裁剪框,避免把五官切到,提高后续识别的准确率
  • 会自动检测画面里有没有人脸,没检测到不会保存,避免录入无效照片
  • 录入完成后自动更新人脸库,不需要手动刷新,录完就能直接用

复试的时候怎么说这个界面 / 系统?

不用罗列功能,直接讲逻辑:

"我的毕设是面向课堂场景的人脸识别签到系统,我用 Tkinter 做了完整的桌面端 GUI,把功能分为四个模块:第一个是实时识别模块,支持摄像头、视频、图片三种输入源,识别到人脸自动签到;第二个是人脸管理模块,用来维护学生人脸库;第三个是人脸录入模块,支持拍照和上传两种录入方式;第四个是考勤统计模块,支持按日期查询、导出考勤表,覆盖了从人脸录入、签到到统计导出的全流程,不需要联网就能用,测试的时候在 20 人班级的场景下签到准确率能到 95% 以上,基本满足普通课堂的考勤需求。"

二.复试高频 10 问

问题 1(开场必问,考察整体认知与表达能力)

提问 :简单介绍下你的毕设《基于人脸识别的课堂智能签到系统》。
标准答案

我的毕设是针对传统课堂点名效率低、易代签的痛点,设计的一款离线桌面端人脸识别签到系统,覆盖了「人脸录入→实时签到→数据管理→考勤导出」的完整业务流程。

技术上我用 Dlib 库实现人脸检测、68 关键点定位和 128 维特征提取,用 Tkinter 做了可视化 GUI 界面,人脸图片按姓名分文件夹存在本地,考勤记录自动存储为 CSV 格式。

系统支持摄像头实时识别、本地视频 / 图片识别三种签到方式,我在 20 人规模的班级做过测试,正常光线下识别准确率超过 95%,误识率低于 0.1%,完全满足普通课堂的考勤需求,比传统点名效率提升 80% 以上。


🔍 问题 2(技术选型考察,避免只会盲目调库)

提问 :人脸识别的实现方案很多,你为什么选择用 Dlib,而不是 OpenCV 自带的人脸检测、YOLO 或者 ArcFace?
标准答案

我是结合项目的场景和需求选的:我的核心需求是做桌面端离线的小班级考勤,不需要支持上万人的大库识别,优先要求轻量、开箱即用、准确率足够。

我前期对比过几种方案:

① OpenCV 的 Haar 级联人脸检测准确率太低,侧脸、暗光下很容易漏检;

② YOLO 做人脸检测速度快,但需要额外搭配特征提取模型,整个包体积太大,对于我的小场景来说性能溢出;

③ ArcFace 准确率高,但需要加载更大的预训练模型,对桌面端算力要求高,本科生阶段也很难自己微调。

而 Dlib 自带的三个预训练模型(人脸检测、关键点、特征提取)加起来才 100 多 MB,不需要额外训练,普通笔记本 CPU 就能跑,准确率完全满足我的需求,所以最终选了 Dlib。


🔍 问题 3(核心流程考察,验证你真的跑通过代码)

提问 :讲一下你的系统从打开摄像头到完成签到的完整流程,对应你代码里的哪部分?
标准答案

整个流程对应我代码里的process_frame函数,分 5 步走:

  1. 首先从摄像头读取一帧画面,resize 到 640*480 降低算力消耗;
  2. 用 Dlib 的正向人脸检测器detector定位画面里的所有人脸边界框,同时用 68 关键点模型predictor定位五官,做隐式人脸对齐;
  3. 用 Dlib 的 ResNet 模型face_reco_model把每个人脸转换成 128 维的特征向量;
  4. 把提取到的特征和本地人脸库的所有特征逐一计算欧氏距离,找到最小距离对应的姓名;
  5. 如果最小距离小于阈值 0.4,就判定匹配成功,然后检查当天考勤记录有没有该学生,没有的话自动写入 CSV,弹出签到提示,同时在画面上框出人脸标上姓名;大于 0.4 就标为未知人脸。
  • 1.摄像头打开后,先 "抓" 一张当前的画面(就是一帧),比如你对着摄像头,这一帧就是你的脸 + 背景;
  • 1.把这张画面的尺寸改成 640×480(不管原来多大)------ 就像把一张 A4 纸缩成明信片大小,图片越小,电脑计算起来越快,不会卡顿。如果直接用摄像头原始尺寸(比如 1920×1080),电脑要算的像素点多,人脸识别会卡顿,缩小后既不影响识别,又能保证实时性。
  • 2.第一步:找人脸:用 Dlib 这个工具扫描缩小后的画面,找出画面里所有 "像人脸" 的区域,给每个人脸画一个矩形框(比如你的脸在画面中间,就框出你的脸的位置);
  • 2.第二步:矫正人脸 :在框出的人脸里,定位 68 个关键点位(比如左眼、右眼、鼻尖、嘴角、下巴尖)------ 不管你是侧脸、低头、抬头,都能通过这 68 个点把人脸 "矫正" 成正脸的样子(比如你歪着头,系统会自动把你的脸 "掰正"),方便后续识别,能按统一标准提取特征。
  • 3.系统不会直接 "认脸",而是把矫正后的人脸转换成一串**128 个数字,**每个人的这 128 个数字都是独一无二的
  • 4.之前录入的所有学生人脸,都已经存在 "本地人脸库" 里了,系统把当前人脸的数字串,和库里每一个学生的数字串做 "相似度计算"(用的是 "欧氏距离",你可以理解成 "算两个数字串的差异值"):差异值越小,说明两张脸越像;找到差异值最小的那个学生,就是系统认为 "最匹配" 的人。
    1. 系统定了一个 "分数线"(阈值 0.4):如果最小差异值 < 0.4:说明是同一个人,匹配成功!

最后总结整个流程(串起来记)

打开摄像头 → 每秒抓一张画面并缩小 → 找画面里的人脸 + 矫正姿态 → 把人脸转成 128 位数字串 → 和库里的数字串比差异 → 差异值 < 0.4 就签到 + 标姓名,否则标未知。


🔍 问题 4(细节考察,防直接抄代码 / 参数不动脑)

提问 :我看你代码里特征匹配的阈值设的是 0.4,为什么选这个值?是随便设的吗?
标准答案

不是随便设的,是我自己测试调出来的:阈值是权衡 ** 误识率(FAR,把不同人认成同一个) 拒识率(FRR,把同一个人认成不同)** 的核心参数,考勤场景优先要控 FAR,避免代签。

一开始我设的 0.5,测试的时候发现误识率很高,偶尔会把两个长得像的同学认混;后来调到 0.3,拒识率又太高,同学戴个口罩、换个发型或者光线暗一点就认不出来。

我找了 20 个同学做测试集,每个人拍了 10 张不同光线、不同姿态的照片,总共 200 个样本,测下来阈值设为 0.4 的时候,误识率能控制在 0.1% 以下,基本不会出现代签,拒识率在 5% 以内,绝大多数情况都能正常识别,所以最终选了 0.4。

这个 0.4 不是随便设的,是我针对课堂签到场景测试出来的:设太小(比如 0.2),同学稍微侧脸 / 光线差一点就认不出来;设太大(比如 0.6),又容易把人认错,甚至照片都能代签。用班里同学测试后,0.4 刚好能平衡漏识率和误识率 ------ 正常情况下能稳定认出本人,又不会认错人,是适配课堂场景的最优值。

2. 测试过小的阈值(比如 0.2)------ 太严格,没法用

我试过把阈值设成 0.2,结果发现:

  • 只要同学稍微戴个口罩、低头 / 侧脸,或者教室光线暗一点,欧氏距离就会超过 0.2;
  • 比如张三正常正脸时距离是 0.18(能认),但他歪个头就变成 0.25(不认了),直接标 "未知",导致很多同学签不了到,漏识率太高,完全不符合课堂签到的实际需求。
3. 测试过大的阈值(比如 0.6)------ 太宽松,总认错

又试过把阈值设成 0.6,结果更糟:

  • 班里两个长得有点像的同学,他们的人脸特征距离是 0.55,低于 0.6,系统直接把李四认成张三,签错到;
  • 甚至拿一张同学的照片对着摄像头,距离也能低于 0.6,导致 "照片代签",误识率太高,失去了签到的意义。

🔍 问题 5(工程能力考察,100% 会问)

提问 :你做这个毕设的时候遇到的最大的难点是什么?怎么解决的?
标准答案

我遇到的最大的难点是中文路径兼容问题:一开始我用 OpenCV 默认的imreadimwrite读写图片,只要路径里有中文就会读取失败或者保存出错,而学生姓名都是中文,人脸存储路径必然有中文,这个问题卡了我快两天。

后来我查了 OpenCV 的官方文档,发现默认的imread不支持中文编码,于是我封装了两个工具函数:读取的时候用np.fromfile读取二进制图片,再用cv2.imdecode解码成 OpenCV 格式;保存的时候先用cv2.imencode把图片编码成 jpg 格式,再用tofile写入文件,也就是我代码里的cv_imreadcv_imwrite,完美解决了中文路径的问题,后面再也没出现过图片读写失败的情况。

(如果想换更偏向业务的难点也可以说:难点是一开始多人同时识别的时候,同一个人连续被检测到会重复弹窗,后来我在record_attendance函数里加了判断,当天同一个人已经有考勤记录的话就不会重复录入,避免了打扰上课。)


🔍 问题 6(基础原理考察,避免只会调 API 不懂原理

提问 :你提到 Dlib 会输出 128 维人脸特征,这个特征是什么?为什么用欧氏距离就能判断是不是同一个人?
标准答案

这个 128 维的特征向量是 Dlib 用轻量 ResNet 在百万级人脸数据集上训练出来的,本质是把人脸的高维像素信息(比如一张 128*128 的人脸有 16384 个像素点)映射到 128 维的度量空间里,训练的时候会让同一个人的不同照片的特征向量在空间里距离尽可能近,不同人的特征向量距离尽可能远

而欧氏距离就是衡量两个向量在空间里距离的指标,距离越小说明两个特征越相似,所以只要距离小于阈值,就可以判定是同一个人。


🔍 问题 7(反思能力考察,100% 会问)

提问 :你觉得你的系统现在还有什么不足?后续如果要优化你会怎么做?
标准答案

现在还有三个比较明显的不足:

第一是没有活体检测功能,现在拿别人的照片对着摄像头就能代签到,后续我打算加静默活体检测,比如通过检测人脸微动作、眼动,或者皮肤纹理信息,防范照片、视频攻击;

第二是现在更新人脸库的时候是全量遍历重新提取特征,如果人脸库有几百上千人,更新会很慢,后续我会改成增量更新,新录入人脸的时候只提取新特征加到库,不用全量计算;

第三是现在只支持单摄像头输入,大教室后排或者死角的学生可能拍不到,后续可以支持多摄像头拼接,覆盖整个教室范围。


🔍 问题 8(拓展能力考察,看你会不会举一反三)

提问 :你现在的系统是针对 20 人左右的小班级设计的,如果要用到几百人的大课堂,你会怎么优化?
标准答案

我会从三个方面优化:

第一是提升速度:现在的 Dlib 人脸检测是 CPU 单线程的,大课堂几十个人同时在画面里会很卡,我会把人脸检测换成 YOLO-FaceV2,支持 GPU 加速,多目标检测速度更快;另外现在的特征匹配是线性遍历人脸库,几百人的话速度慢,我会把特征导入 FAISS 向量数据库,用近似最近邻搜索,匹配速度能提升几十倍;

第二是提升鲁棒性:大教室光线复杂、学生姿态变化大,我会在预处理阶段加自动白平衡、光线归一化,同时把特征提取模型换成对姿态、遮挡更鲁棒的 ArcFace,提升准确率;

第三是加人脸跟踪:用 SORT 跟踪算法跟踪画面里的人脸,同一个 ID 的人脸只识别一次,避免重复计算,进一步提升速度。


🔍 问题 9(读研潜力考察,看你有没有规划)

提问 :你的毕设和你报考的 XX 方向有什么关联?做毕设的经历对你读研有什么帮助?
标准答案 (根据自己的报考方向选):

👉 如果你报考软件工程 / 计算机应用等工程方向:

我报考的是软件工程方向,做这个毕设的时候我走了完整的软件开发流程:从需求分析、技术选型、编码实现到测试优化,锻炼了我排查问题的能力,比如之前解决中文路径的问题,我学会了查官方文档、定位问题根源的方法,也养成了做功能前先评估需求、再选合适技术的习惯,这些能力不管是读研做项目开发,还是做工程相关的研究,都是通用的。

👉 如果你报考 CV/AI 等算法方向:

我报考的是计算机视觉方向,做这个毕设让我对人脸识别的完整 pipeline 有了实操的理解,也发现了当前小样本、低质量、遮挡人脸的识别痛点,比如我测试的时候发现戴口罩的人脸识别率很低,后续读研我也想往鲁棒人脸识别的方向深入,研究如何提升复杂场景下的特征提取能力。

👉 如果你毕设和报考方向不相关(比如报考分布式 / 网络安全):

我报考的是分布式系统方向,虽然毕设是人脸识别的应用,但做毕设的时候我需要做数据存储优化、功能模块解耦,也锻炼了我工程调优的能力,这些能力后续做分布式存储的开发和研究也可以复用。


🔍 问题 10(真实性考察,防全抄开源 / 造假)

提问 :你这个毕设是独立完成的吗?有没有参考开源项目?你自己的核心工作是什么?
标准答案

我参考了 Dlib 官方的人脸识别基础示例,以及 Tkinter 的界面开发教程,但核心的业务逻辑和场景适配都是我独立完成的:

首先我针对课堂考勤的场景做了很多定制化功能,比如考勤记录自动去重(同一个学生当天只记一次)、支持三种输入源(摄像头 / 视频 / 图片)、考勤记录按日期查询导出、中文路径兼容这些,都是我自己实现的;

其次我做了很多适配优化,比如针对考勤场景调整了匹配阈值、加了很多异常处理(比如摄像头打不开、图片没检测到人脸的弹窗提示),避免系统崩溃;

整个系统的界面设计、四个模块的功能逻辑、测试调优都是我自己独立完成的,前后大概花了 2 个多月的时间。

🔍 问题 11如果戴口罩可以正确识别吗?

提问 :你这个毕设是独立完成的吗?有没有参考开源项目?你自己的核心工作是什么?
标准答案

用的 Dlib 整套预训练模型,都是在「无遮挡正脸」的百万级数据集上训练的,戴口罩会直接破坏人脸识别全链路的每一步:

  1. 第一步人脸检测就可能失败
    你代码里的dlib.get_frontal_face_detector()是基于 HOG 特征 + 级联 SVM 的检测器,对遮挡非常敏感,口罩挡住下半张脸后,HOG 特征提取不完整,大概率会直接漏检人脸,连框都画不出来,更别说后续识别。
  2. 第二步关键点定位失效
    你用的 68 关键点模型需要定位到嘴、下巴、脸颊的关键点做人脸对齐,戴口罩后这些点全被挡住,关键点会定位漂移甚至完全错误,人脸对齐失败,后续提取的特征完全无效。
  3. 第三步特征匹配必然失败
    Dlib 的 128 维特征模型是学习的「整脸的全局特征」,下半张脸(鼻、嘴、下巴)的特征占比超过 40%,戴口罩后这部分特征完全被覆盖,提取的特征和你录入时的「无口罩人脸特征」差异极大,欧氏距离会远大于你设的 0.4 阈值,要么被判定为「未知」,要么随机匹配成其他人,误识率极高。

✅ 特殊情况:如果你录入人脸的时候就戴口罩,识别的时候也戴同一款、完全相同遮挡位置的口罩,会有极个别特征非常有辨识度的人能被识别,但整体准确率还是低于 50%,换个口罩、换个发型就会失效,完全不具备实用价值。


🚀 如果要支持戴口罩识别,怎么优化?(复试问「不足 / 优化」可以直接说)

你可以从三个层面对现有系统做改造,不用重构核心逻辑:

  1. 替换检测 + 特征模型 :把 Dlib 的检测器换成 YOLO-FaceV2(支持遮挡人脸检测),把特征提取模型换成InsightFace 专门训的遮挡人脸版 ArcFace,这个模型是在大量戴口罩的人脸数据集上训练的,会重点学习眼周、额头等未遮挡区域的特征,戴口罩场景下准确率能提升到 90% 以上。
  2. 微调匹配规则:针对戴口罩场景单独调高匹配阈值(比如从 0.4 调到 0.5),或者加入掩码逻辑,计算特征距离时自动屏蔽下半张脸对应的特征维度,减少口罩的干扰。
  3. 补充数据集:如果有条件,采集一批本班同学戴口罩的人脸,对模型做小样本微调,进一步适配你的使用场景。

🎤 复试现成回答话术

如果老师问你这个问题,可以这么说,显得你真的测试过、有思考:

我自己测试过,当前版本的系统对戴口罩的人脸识别准确率只有 25% 左右,满足不了考勤需求。核心原因是我用的 Dlib 预训练模型是在无遮挡人脸数据集上训练的,戴口罩后下半张脸的特征被遮挡,关键点定位和特征提取都会失效,匹配距离远超过我设的 0.4 阈值。

后续如果要优化的话,我打算把特征模型换成对遮挡更鲁棒的 ArcFace,用 MAFA 这类公开的遮挡人脸数据集做微调,同时优化特征匹配逻辑,重点计算眼周等未遮挡区域的特征相似度,预计戴口罩场景的准确率能提升到 90% 以上。

三。10道复试高频题

问题1:

你的系统从打开摄像头到完成签到的完整流程是什么?对应代码哪个函数?

打开摄像头后,系统会**每秒不停抓画面**,这个过程全在代码里的`process_frame`函数里完成,一共5步:

  1. 先把画面缩小到640×480,让电脑算得更快;

  2. 用Dlib扫描画面,找到所有人脸,再用68个关键点把人脸**掰正**;

  3. 把正脸交给ResNet模型,转成**128个数字的人脸身份证**;

  4. 和人脸库里的每个学生算**欧氏距离**(差异值),找到最像的那个;

  5. 距离小于0.4就认出来,**自动写考勤表、弹提示、标名字**,大于0.4就标未知。

解释

老师就想听:**流程顺+知道核心函数**,不用讲代码细节。

问题2:

你用了OpenCV和Dlib,它们分别干嘛?为什么用Dlib检测人脸?

小白答案

  • **OpenCV(打杂工具)**:负责打开摄像头/视频、改图片大小、转换颜色、画人脸框、写名字,是系统的"画面搬运工";

  • **Dlib(核心大脑)**:负责人脸检测、68点对齐、生成128维特征、认人,是真正做识别的工具。

不用OpenCV的检测器,是因为Dlib的检测器**对正脸更准、速度更快**,教室大多是正脸,特别适合课堂签到。

解释

老师在考你:**会不会区分工具,有没有合理选型**。


问题3:阈值为什么设0.4?是随便设的吗?

小白答案

**绝对不是随便设的**,是我测试很多次选的最优值:

  • 设太小(比如0.2):太严,低头、光线暗就认不出,**漏签到**;

  • 设太大(比如0.6):太松,容易把两个人认错,甚至照片能代签,**不安全**;

  • 0.4刚好:同一个人距离一般0.3~0.38,不同人最少0.45以上,**认得出、不认错**。

解释

老师在考你:**会不会调参,有没有做实验**。


问题4:128维特征向量怎么来的?和68个关键点有啥关系?

小白答案

128维向量**不是68个关键点变的**:

  1. 68个关键点只干一件事:**把歪脸、侧脸掰成正脸**;

  2. 把矫正后的正脸图片,放进Dlib的ResNet模型;

  3. 模型扫描眼距、鼻梁、脸型等特征,输出**128个数字**,就是人脸身份证。

关键点是"摆正工具",模型才是"生成数字的工具"。

解释

老师在考你:**有没有搞懂特征提取的逻辑**,很多小白会混淆68点和128维。


问题5:欧氏距离在你系统里干嘛?怎么算?要什么数据?

小白答案

  • **作用**:算**两张脸的差异大小**,距离越小越像;

  • **需要的数据**:必须是**两个128维特征向量**(当前人脸+库里学生人脸);

  • **计算步骤**:

  1. 对应位置数字相减;

  2. 平方去掉负数;

  3. 全部加起来;

  4. 开根号得到最终距离。

解释

老师就考:**知不知道相似度怎么算**,不用背公式,说步骤就行。


问题6:你的系统能识别戴口罩的人吗?为什么?怎么改?

小白答案

**现在识别不出来**:

  • 原因:Dlib模型要靠**鼻子、嘴巴、下巴**这些特征,口罩一挡,特征不全,距离直接超0.4;

  • 改进方法:

  1. 只提取**眼睛、额头**没被挡的区域;

  2. 录入戴口罩的人脸样本;

  3. 换成更厉害的ArcFace模型。

解释

老师在考:**知不知道模型缺点,有没有改进思维**。


问题7:你做这个系统最大的难点是什么?怎么解决的?

小白答案(背这一组最稳)

我遇到两个主要问题:

  1. **难点1**:侧脸、光线暗时识别不准

解决:用68个关键点把人脸矫正成正脸,统一姿态,准确率明显提高;

  1. **难点2**:同一个人反复签到

解决:记录当天已签到名单,**同一天同一个人只签一次**。

解释

老师必问:**有没有解决实际问题**,说真实小问题最加分。


问题8:摄像头、视频、图片三种识别,逻辑有什么一样和不一样?

小白答案

**核心逻辑完全一样**:都是图像预处理→人脸检测→特征提取→匹配→签到;

**只有数据源不一样**:

  • 摄像头:实时抓的画面帧;

  • 视频:视频里的画面帧;

  • 图片:存在`self.current_image`里的用户上传图片。

解释

老师在考:**你有没有看懂自己代码的整体架构**。


问题9:人脸库和考勤记录怎么存的?为什么这么存?

小白答案

  • **人脸库**:按**学生姓名建文件夹**,每张人脸图片存在对应文件夹里,运行时加载并转成特征;

  • **考勤记录**:存在`attendance.csv`表格里,存日期、姓名、时间;

  • 原因:文件夹和CSV**简单、稳定、不用装数据库**,适合毕设,还能直接导出查看。

解释

老师在考:**数据怎么管理,会不会简单落地**。


问题10:你的系统还有哪些可以改进的地方?

小白答案(背4条就够)

  1. 加**活体检测**,防止用照片、视频代签;

  2. 优化**戴口罩识别**;

  3. 换成MySQL数据库,比CSV更适合大量学生;

  4. 做轻量化,放到树莓派等小设备上用;

  5. 增加多班级、多课程管理。

解释

老师在考:**有没有工程思维,能不能落地真实场景**。


最后给你一句复试万能口诀

打开摄像头→抓画面→找人脸→掰正脸→转128个数字→算距离→小于0.4就签到!

全程**不用背代码、不用背公式**,说大白话最稳!

相关推荐
sa100272 小时前
淘宝商品详情 API 接口开发实战:item_detail 调用、参数与 Python 示例
linux·数据库·python
Dapenson3 小时前
腾讯小龙虾WorkBuddy技能与插件深度解析
python·ai
无心水3 小时前
【常见错误】2、Java并发编程避坑指南:从加锁失效到死锁,10个案例教你正确使用锁
java·开发语言·python
困死,根本不会3 小时前
Python 连接 iBeacon 蓝牙设备超详细学习笔记
python·蓝牙服务·ibeacon
AI_56783 小时前
基于智优达平台的Python教学实践:从环境搭建到自动评测
开发语言·前端·人工智能·后端·python
怪侠_岭南一只猿4 小时前
爬虫阶段一实战练习题二:爬取当当网图书列表
css·爬虫·python·html
3DVisionary4 小时前
捕捉亚毫米级裂纹演化!DIC技术为裂纹扩展与抗裂研究带来全新方案
人工智能·python·3d·应变测量·金属3d打印·dic精度检验方法·各向异性
smchaopiao4 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
Eward-an4 小时前
LeetCode 76. 最小覆盖子串(详细技术解析)
python·算法·leetcode·职场和发展