Python爬虫实战:Boss直聘数据采集与可视化分析系统
简介基于 Python 的 Boss 直聘数据可视化分析系统是高校数据科学/大数据方向期末大作业的完整源码适合作为课程设计、毕业设计参考也适合刚入门数据分析的读者对照练习。项目围绕 Boss 直聘岗位数据实现从爬虫采集、数据清洗到可视化展示的完整流程覆盖薪资水平、学历要求、经验要求、招聘城市、大厂岗位等多个分析维度。资源包共 26 个文件、约 426KB核心包含 1 个爬虫脚本、2 个 Jupyter Notebook数据清洗与分析、4 个 CSV 数据集以及 12 个 HTML 图表页面如各经验工资、学历要求占比、大厂招聘数量等其余为工程配置文件整体结构清晰。已有 787 人学习下载项目为评审 95 分以上的高分源码经过严格调试可运行。下载后可获得完整源码、清洗后数据及可视化模板便于快速理解项目架构并在此基础上进行二次修改与功能扩展。1. 基于 python 的 boss 直聘数据可视化分析系统期末大作业最容易被追问的三个问题每年期末前后后台总有人问同一个问题我想拿招聘数据做爬虫和可视化大作业打开 boss 直聘却发现页面结构看不懂、接口返回的 JSON 里全是加密字段最后只能手动复制几百条数据交差。这个标题下的项目就是干这个的用 Python 抓取 boss 直聘的职位列表接口把岗位名称、薪资、城市、经验要求、学历要求这些字段清洗成结构化表格再用 pyecharts 生成一组可交互的 HTML 图表最后凑齐一份能演示、能答辩、能解释每个图表含义的完整系统。这个方案适合三类人第一类是 Python 基础刚入门、想找一个不太难但能讲清楚的项目交期末大作业的学生第二类是已经在学 requests 和 pandas、想拿真实数据练手的数据分析初学者第三类是准备投数据分析岗位、需要一个作品集 demo 的求职者。整条链路不依赖重型框架requests 负责采集pandas 负责清洗pyecharts 负责可视化数据量控制在几千条以内一台普通笔记本完全跑得动。先说结论这个项目最大的难点不在写代码而在处理招聘平台的接口限制和字段格式。薪资是20K-40K这种文本、经验要求是3-5年这种区间、城市字段是数字编码这些不洗成数值型数据后面的柱状图和饼图都画不出来。下面从采集开始一步步把整条链路拆开讲。2. 用 requests 抓取 boss 直聘职位列表接口cookies 与 JSON 解析2.1 为什么优先选接口请求而不是整页 HTML 抓取很多教程会教你先用 requests 拿 HTML 再配合正则或 BeautifulSoup 提取岗位信息但 boss 直聘的页面是典型的 JavaScript 渲染直接请求 HTML 拿到的只是空壳骨架职位数据全部藏在异步接口里。与其跟 DOM 结构较劲不如直接用浏览器开发者工具把接口找出来请求接口拿 JSON解析成本低得多。常见做法是打开浏览器开发者工具切到 Network 面板在搜索框输入python 开发刷新页面过滤 XHR 请求找到一个名字类似 job/list 的接口Response 里就是一个标准的 JSON。这个 JSON 里包含职位列表、翻页用的 page 参数、以及下一批数据需要的查询参数。标题里提到的基于 python 的 boss 直聘数据可视化分析系统核心就是围绕这个接口展开的。需要注意一个前提直接用 requests 裸请求这个接口大概率返回一段安全校验提示。这不是接口加密而是平台对请求头有校验要求。解决方案不是去逆向算法而是从浏览器里把完整的 cookies 和 User-Agent 复制出来在请求头里带上去。实际上这是整个项目里最像玄学的部分也是答辩时老师最容易追问的点。2.2 最小可运行示例请求职位列表并解析出核心字段下面是完整可跑的采集模块抓取Python 开发在北京的前 3 页职位数据。运行前需要先登录一次 boss 直聘网页版从浏览器开发者工具里把你自己的 cookies 复制到代码里。import requests import time import json headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Cookie: 这里粘贴你浏览器里的完整cookies字符串, Accept: application/json, text/plain, */*, Referer: https://www.zhipin.com/web/geek/job?querypythoncity101010100 } params { query: Python开发, page: 1, city: 101010100 # 北京的城市编码 } all_jobs [] for page in range(1, 4): params[page] page resp requests.get(https://www.zhipin.com/wapi/zpgeek/search/job/list.json, headersheaders, paramsparams, timeout10) data resp.json() job_list data[zpData][jobList] for job in job_list: item { jobName: job[jobName], salary: job[salaryDesc], city: job[cityName], areaDistrict: job.get(areaDistrict, ), businessDistrict: job.get(businessDistrict, ), experience: job.get(jobExperience, ), education: job.get(jobDegree, ), company: job[brandName], companySize: job.get(brandScaleName, ), welfare: 、.join(job.get(welfareList, [])) } all_jobs.append(item) time.sleep(3) # 每页之间休息降低请求频率 with open(jobs_raw.json, w, encodingutf-8) as f: json.dump(all_jobs, f, ensure_asciiFalse, indent2) print(f共采集 {len(all_jobs)} 条职位数据)这段代码的关键参数有三处cookies 必须是你登录后的完整值不能只复制一小段city 参数是城市编码101010100 代表北京换城市要去接口参数里重新抓page 从 1 开始递增每页 15 条总共 45 条只是演示用。真正交作业时建议抓 5 个城市各 10 页拿到 750 条左右可视化结果会饱满很多。请求频率是第一个隐形坑。time.sleep(3) 意味着 3 页采集要 6 秒以上如果去掉这个延时连续快速请求大概率触发验证码。处理方式是固定间隔不要用随机间隔去赌概率平台的记录逻辑比你想象的精确。另外接口 URL 里的 job/list.json 在不同时间可能有小变动如果返回的 JSON 里 zpData 为 None先检查是不是 cookies 过期再去 Network 面板重新确认接口地址。3. 数据清洗与存储把接口字段变成 pandas 能分析的表格3.1 字段格式问题薪资、经验、学历全都要重写跑通采集只是第一步紧接着就会遇到比采集更磨人的字段清洗。接口返回的字段看着能读但全是给人类看的文本格式数学计算根本没法做。薪资是20K-40K均值要自己算经验是3-5年上界下界要拆开学历是本科这种字符串做饼图前要分组计数。如果直接拿这些原始字段画图柱状图会按字符串排序20K-40K 和 15K-30K 会被当成两个独立类别完全看不出薪资分布趋势。所以清洗的核心逻辑是把区间文本拆成数值再按业务规则重新归类。具体拆法分两类。带K的薪资取区间两端求平均单位统一成 K带万的按 10000 换算。经验字段拆出最低年限和最高年限没有区间就填同一个值。学历字段做映射把大专“本科“硕士映射成 1/2/3 的等级既保留文本说明又支持排序。3.2 存储选型两千条以内直接用 CSV不需要 SQLite有人一上来就建 SQLite 数据库写建表语句、插入逻辑最后发现查询只用到了 pandas 的 read_csv数据库反而成了摆设。我的判断标准很简单数据量在几千条以内、没有多表关联、不需要并发写入CSV 就是最优解导师打开就能看Excel 也能直接打开检查。如果后续要扩展比如加上岗位详情页的评论数据、公司信息表再迁移到 SQLite 也不迟。对于期末大作业这个体量CSV 足够而且可以用 pandas 一步读入内存后面所有的清洗和可视化都建立在 DataFrame 上。3.3 一次完整的清洗管道从原始 JSON 到分析用 DataFrame下面这段代码把第 2 步采集的 jobs_raw.json 读入清洗后输出 analysis.csv这是整个系统里承上启下的一环。import pandas as pd import json import re with open(jobs_raw.json, r, encodingutf-8) as f: raw_data json.load(f) df pd.DataFrame(raw_data) print(清洗前数据量:, len(df)) print(缺失值统计:\n, df.isnull().sum()) # 薪资清洗把 20K-40K / 20-40万 转成数值 def parse_salary(salary_str): if not isinstance(salary_str, str): return None, None # 统一把万转成 K if 万 in salary_str: s salary_str.replace(万, K) else: s salary_str nums re.findall(r(\d\.?\d*), s) if len(nums) 0: return None, None low float(nums[0]) high float(nums[-1]) if len(nums) 2 else low # 如果原文是 20-40万转化成K之后 low/high 是以K为单位的 scale 10 if 万 in salary_str else 1 return round(low * scale, 2), round(high * scale, 2) df[salary_low] df[salary].apply(lambda x: parse_salary(x)[0]) df[salary_high] df[salary].apply(lambda x: parse_salary(x)[1]) df[salary_mid] (df[salary_low] df[salary_high]) / 2 # 经验清洗取最低年限方便分组 def parse_exp_min(exp_str): if not isinstance(exp_str, str): return None if 不限 in exp_str: return 0 nums re.findall(r\d, exp_str) return int(nums[0]) if nums else None df[exp_year] df[experience].apply(parse_exp_min) df[exp_group] pd.cut(df[exp_year], bins[-1, 0, 1, 3, 5, 10], labels[不限, 1年以内, 1-3年, 3-5年, 5年以上]) # 地区字段补充没有商圈信息的用区域名填充 df[district] df[businessDistrict].fillna(df[areaDistrict]) df.to_csv(analysis.csv, indexFalse, encodingutf-8-sig) print(清洗后字段:, list(df.columns)) print(df[[jobName, salary, salary_mid, exp_group, city]].head())parse_salary 函数里有个容易被忽略的细节薪资原文如果以万结尾正则提取出来的数字单位是万转成 K 时要乘 10 再算均值。这正是20-40万和20K-40K混在一起时最常见的翻车点不处理会直接导致均值偏小 10 倍。exp_group 直接用 pd.cut 分箱把连续年限变成离散区间后面画饼图就不用自己手写分组逻辑。清洗完建议再打印一次 df.info()看看每列的数据类型。salary_mid 应该是 float64exp_group 应该是 category如果有字段还是 object 类型说明清洗没做透。这一步做完analysis.csv 就是所有图表的唯一数据源后续可视化模块只读这个文件不再碰原始 JSON。4. pyecharts 可视化看板从岗位薪资分布到城市需求对比4.1 图表选型什么数据配什么图六张图覆盖答辩追问可视化部分不是图越多越好而是每一张图都要能回答一个明确的问题。我通常会生成六张图正好对应答辩时老师最常问的角度岗位薪资中位数分布看整体水平城市岗位数量对比看需求热度学历要求饼图看门槛经验要求分布看岗位层级热门技能词云看技术栈公司规模分布看目标企业画像。选 pyecharts 而不是 matplotlib 的原因很简单期末大作业的现场演示通常没有大屏而是用投影或者屏幕共享。pyecharts 生成的是 HTML 文件鼠标悬停能看到具体数值点击图例可以筛选系列这种交互效果比 matplotlib 的静态 PNG 更有演示冲击力。而且 pyecharts 图表自带中文渲染不需要像 matplotlib 那样配置中文字体。4.2 核心图表代码数据看板生成器这里用一个统一脚本生成所有图表每张图读取 analysis.csv输出独立的 HTML 文件。核心是图表类型的配置逻辑比如柱状图的 x 轴数据需要先按城市分组聚合饼图需要先按学历计数。import pandas as pd from pyecharts.charts import Bar, Pie, WordCloud, Line from pyecharts import options as opts from pyecharts.commons.utils import JsCode df pd.read_csv(analysis.csv, encodingutf-8-sig) # 图1: 城市·岗位数量柱状图 city_count df[city].value_counts() bar Bar() bar.add_xaxis(city_count.index.tolist()) bar.add_yaxis( 岗位数, city_count.values.tolist(), label_optsopts.LabelOpts(is_showTrue) ) bar.set_global_opts( title_optsopts.TitleOpts(title各城市 Python 岗位需求数量), yaxis_optsopts.AxisOpts(name岗位数) ) bar.render(chart_city.html) # 图2: 学历要求饼图 edu_count df[education].value_counts() pie Pie() pie.add( , [list(z) for z in zip(edu_count.index.tolist(), edu_count.values.tolist())], radius[35%, 65%], label_optsopts.LabelOpts(formatter{b}: {c} ({d}%)) ) pie.set_global_opts(title_optsopts.TitleOpts(title学历要求分布)) pie.render(chart_edu.html) # 图3: 技能词云 - 从岗位名称和福利标签中提取关键词 text_data .join(df[jobName].tolist()) words text_data.replace(开发, ).replace(工程师, ).split() # 简单词频统计作业场景够用想更精细可用 jieba 分词 word_count pd.Series(words).value_counts().head(50) wc WordCloud() wc.add(, [list(z) for z in zip(word_count.index.tolist(), word_count.values.tolist())], word_size_range[20, 80]) wc.set_global_opts(title_optsopts.TitleOpts(title岗位名称关键词词云)) wc.render(chart_wordcloud.html)pyecharts 的 add_yaxis 里 label_opts 控制柱子上是否显示数字做演示时建议打开全场不用凑近屏幕看轴刻度饼图的 radius 控制环的大小[35%, 65%] 生成甜甜圈样式比实心饼更清爽。词云这里偷懒用了简单 split 分词中文语境下效果一般想做得好看就把 jieba 分词接进来用 cut 函数切词再统计词云会更合理。图表渲染后的 HTML 是自包含文件双击就能在浏览器打开不需要启动任何服务。这也意味着可以把 HTML 直接放进最终提交的 zip 包里老师解压后点开就能看不用装 Python 环境这一点对期末大作业的交付体验提升很大。4.3 图表联动两个参数让看板从零散变系统单张图表是零散的加上联动才有系统的样子。pyecharts 里最实用的联动是数据下钻比如先画一个全国岗位城市分布图点击某个城市再展示该城市的薪资区间分布。用 Page 组件把所有图表挂在一页上也可以做成带有 Tab 切换的看板。from pyecharts.charts import Page page Page(layoutPage.SimplePageLayout) page.add(bar, pie, wc) page.render(analysis_dashboard.html)Page.SimplePageLayout 会把图表按网格自动排布生成的 HTML 里所有图表纵向排开滚动查看即可。如果想让图表横向排布可以用 DraggablePageLayout但演示时容易拖动乱掉反而增加不必要的操作负担。我一般交作业版本用 SimplePageLayout答辩现场讲图时按滚动顺序展开逻辑上是数量 → 分布 → 技能一条线往下走。图表标题里的Python 岗位是根据自己抓的职位名动态生成的如果抓的是 Java 岗位脚本不用改所有图和标题自动跟着变。这也是这个系统的好处换关键词等于换一套分析报告中期检查时展示这一点会显得方案有扩展性。5. boss 直聘采集与可视化避坑清单5 个让作业翻车的真实现场5.1 zpData 为 None不是接口变了是请求头没带全现象requests 请求接口返回的 JSON 里 zpData 字段是 null代码一执行到 job_list 就报 TypeError。原因八成的概率是请求头缺了 Accept 或 Referer。boss 直聘的接口校验逻辑看的是请求头组合不是单一字段。缺 Referer 时服务器会认为这是跨域请求直接拒绝返回数据。解决把浏览器开发者工具里 Network 面板中该接口的 Request Headers 完整复制过来全部填进 headers 字典不要手动精简。重点是 Accept、Referer、User-Agent 三个字段。5.2 薪资均值算出来只有 0.6K万和 K 混用导致的十倍误差现象清洗后的 salary_mid 集中在 0.5 到 0.8 之间明显比真实薪资低一个数量级。原因原始薪资字段里一部分是25-35K一部分是20-40万两套单位混在一起。parse_salary 把万转成了 K但正则提取的数字还在计算 mean 时低单位和高单位直接相加除以 2结果被拉低。解决在 parse_salary 里先判断原文是否包含万如果是提取的数字整体乘 10 后再作为 K 值存。改完后抽样对比几行原始值和计算结果确认区间上下界没有数量级偏差。5.3 词云图全是开发工程师分词粒度太粗现象词云图里最大的词是开发工程师招聘真正的技术栈关键词被淹没了。原因简单 split 是按空格切分中文一个词都没切开高频的岗位通用词霸占了词频。解决接入 jieba 分词在分词前先停用词过滤把开发工程师招聘这类岗位通用词加进停用词表。更精细的做法是从福利标签里提取技术栈关键词比如深度学习数据分析爬虫这些词更能展示岗位画像。5.4 采集 200 条后出现验证码sleep 间隔太短现象前几页采集正常跑到第 5 页左右接口突然返回一个包含验证码地址的 HTML 页面json.loads 直接报错。原因虽然写了 time.sleep(3)但实际请求间隔是 3 秒加上代码执行时间可能仍旧低于平台对连续分页请求的判定阈值。分页请求会被视为同一会话内的连续操作触发频率限制。解决把 sleep 提高到 5 秒并限制单次采集总页数不超过 10 页。另外一个有效手段是设置随机 User-Agent 池每页换一个 UA但要注意 UA 必须是真实浏览器的完整字符串随便拼一个反而更容易触发风控。5.5 生成的 HTML 在老师电脑上打开是乱码编码问题现象analysis.csv 用 Excel 打开乱码或者 HTML 图表里的中文标签显示成锟斤拷。原因CSV 写入时用了 utf-8Excel 默认用 GBK 打开HTML 生成时 pyecharts 版本内嵌的模板编码异常。解决CSV 写入用 encodingutf-8-sig这是带 BOM 的 UTF-8Excel 能识别。HTML 的乱码问题通常是因为用了旧版 pyecharts升级到新版即可如果不想动版本就在 HTML 文件头部检查 meta charset 是否为 utf-8。6. 答辩演示技巧把六张图讲成一套结论而不是一堆数据最后一步是演示。很多学生代码跑通了却在答辩时被问你这个项目到底得出了什么结论而卡住。解决办法是提前准备一套固定的讲解顺序每张图对应一个可验证的结论并且用代码里的数据去支撑它。我的习惯是这样做先打开分析报告页面从城市柱状图开始讲。指着北京、上海、深圳的柱子说这三个城市岗位需求占了总量的百分之多少这个百分比直接从 value_counts 的结果里就能算出来不需要额外分析。顺势引出学历饼图强调这个岗位以本科为主硕士比例并没有想象中高。然后展示薪资均值和中位数解释为什么中位数比均值更能代表一般水平——高端岗位把均值拉高了。词云图放在最后说明技术栈需求中哪些技能出现的频次最高给准备入行的同学一个参考方向。演示过程中有一个细节容易被忽略图表里的数值必须和代码运行结果一致不要口头估计。提前把 city_count 打印出来记住前三个城市的精确数值现场讲解时随口说出来可信度远高于大概差不多这类模糊表述。pyecharts 的 HTML 支持鼠标悬停查看数值但这会打断讲解节奏自己记住数据更流畅。如果你想把系统做得更有区分度可以加一张薪资与经验关系的折线图x 轴是经验分组y 轴是薪资中位数观察薪资涨幅曲线。这张图恰好回应经验对薪资影响有多大这类加分问题实现方式是把 salary_mid 按 exp_group 分组求均值再用折线图画出来。整个项目的代码量不算大但链路完整从采集、清洗、存储到可视化每一层都有明确的输入输出。我自己当年做类似作业时最大的教训就是在采集阶段花太多时间研究加密参数后来发现带上完整请求头就能直接拿到数据——有些平台的风控并没有想象中那么复杂先把能用的条件用起来再考虑更进一步的反爬对抗。希望这篇能帮你的期末大作业少走点弯路。本文还有配套的精品资源点击获取

相关新闻

计算机基础八股文面试通关指南:从TCP握手到DNS解析

计算机基础八股文面试通关指南:从TCP握手到DNS解析

简介:计算机基础.pdf是一份面向后端/前端开发者及准备技术面试的程序员的计算机网络知识点整理,内容源自代码随想录知识星球“最强八股文”第五版计算机基础篇。文档围绕三次握手与四次挥手、HTTP与HTTPS、DNS解析、HTTP缓存等高频考点展开,并…

2026/10/18 12:26:24 阅读更多 →
基于CNN和PyTorch的衣服颜色识别:从数据到部署完整指南

基于CNN和PyTorch的衣服颜色识别:从数据到部署完整指南

每到毕设选题季,总会有学生跑来问我,深度学习方向的题目选什么才不容易翻车。聊得多了我发现,大家真正担心的其实不是题目大小,而是两件事:能不能讲清楚实现逻辑,能不能跑出看得见的结果。用 Python 写一个…

2026/10/18 12:26:24 阅读更多 →
ffmpeg-4.2.1-win32-shared实战:从DLL配置到视频抽帧与推流避坑指南

ffmpeg-4.2.1-win32-shared实战:从DLL配置到视频抽帧与推流避坑指南

简介:这是一套面向 32 位 Windows 平台的 FFmpeg 4.2.1 共享库版本,适合需要在多媒体程序或脚本中调用音视频编解码能力的开发者,也适合希望掌握 FFmpeg 命令行处理的进阶用户。压缩包共 52 个文件,约 22.8 MB,主要包含…

2026/10/18 12:26:24 阅读更多 →

最新新闻

MATLAB/Simulink准同期并网仿真:三判据建模、导前时间补偿与合闸冲击电流分析

MATLAB/Simulink准同期并网仿真:三判据建模、导前时间补偿与合闸冲击电流分析

简介:这份资源是面向电气工程专业学生与电力系统仿真学习者的毕设论文文档,聚焦同步发电机并网中的准同期并列问题,帮助读者理解均频、均压与合闸单元的工作原理,并掌握用MATLAB/Simulink搭建准同期装置仿真模型的方法。压缩包内共…

2026/10/18 13:55:11 阅读更多 →
改进粒子群优化算法UAV三维路径规划Matlab代码包实战解析

改进粒子群优化算法UAV三维路径规划Matlab代码包实战解析

简介:这份资源是面向计算机、电子信息工程、数学等专业学生的Matlab项目代码包,聚焦于用改进粒子群优化算法解决无人机三维路径规划问题,适用于课程设计、期末大作业与毕业设计等场景。压缩包共10个文件,约314KB,包含4…

2026/10/18 13:55:11 阅读更多 →
手写W3C规范的HTML语法检查器:解析器原理与工程实践

手写W3C规范的HTML语法检查器:解析器原理与工程实践

我是干前端开发的时候被浏览器惯坏了的典型。页面标签忘了闭合、属性值没加引号、<p>里塞了<h1>&#xff0c;浏览器全都默默帮你“修正”&#xff0c;Console 里连个报错都懒得给。可一旦到了自动化测试、爬虫解析、CMS 内容校验这些场景&#xff0c;这种容错就成了…

2026/10/18 13:55:11 阅读更多 →
酒店点餐系统源码拆解:从运行到答辩的工程实践指南

酒店点餐系统源码拆解:从运行到答辩的工程实践指南

简介&#xff1a;这是一套面向计算机及相关专业本科生的毕业设计级酒店点餐系统完整交付物&#xff0c;专为毕设开发、课程设计与项目实战学习者打造&#xff0c;解决从需求分析、前后端开发到数据库部署与论文撰写的全流程实践需求。资源共705个文件&#xff0c;涵盖40个核心P…

2026/10/18 13:55:11 阅读更多 →
Godot 4.7 2D平台游戏开发:从零构建海岛冒险闯关框架

Godot 4.7 2D平台游戏开发:从零构建海岛冒险闯关框架

看到“2D 平台闯关”这个方向&#xff0c;很多接触 Godot 的新手都会陷入同一个误区&#xff1a;以为找一张素材图、拖进场景、写几行移动代码&#xff0c;游戏就能“跑起来”。实际上&#xff0c;真正让一个平台游戏从“能跑”变成“能玩”的&#xff0c;是节点结构、物理交互…

2026/10/18 13:55:11 阅读更多 →
MacOS 开发环境开荒标准化配置:从 Homebrew 到 zsh 的 TaoToken 统一 Key 实践

MacOS 开发环境开荒标准化配置:从 Homebrew 到 zsh 的 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/18 13:54:11 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →