切换上机材料(7 篇)
练习一讲解录播(下载)
MP4 · 6 分 6 秒
本页导言下面可直接播放;需要离线看时下载。
本页目录
开始之前先按上机导航“开始之前”一节接好工具。
任务
在国家大学生就业服务平台的职位信息页,搜关键词“金融”,地区保持“全国”,采集前 3 页共 30 条岗位,存成 CSV;再让智能体写一段脚本,用程序数行数、查重复,不信它口头说的“已全部采集”。
这个网站不用登录,月薪、学历、单位都是明文。它有三个地方要留心,练习就是冲着这三点设计的:
- 列表要等网页里的程序加载出来。直接读网页源码,岗位列表是空的,只读网页正文的工具拿不到数据,要用浏览器工具。
- 翻页时网址不变。点“>”后列表换了,地址栏还是同一个网址,所以不能靠“打开第 2 页的网址”翻页,要点按钮。
- 分页栏的页数不能信。不管搜出多少条,分页栏都画
1 2 3 4 5 >;搜出 0 条时也一样。判断采完了,看这一页是不是不满 10 条。 - 不登录只能看前 5 页。点第 6 页会弹出“请登录后查看”。练习只采前 3 页。
🎬 讲解录播
录播 6 分 6 秒,带讲解和字幕,播放器右下角可以全屏。
准备
材料包 01_岗位采集/:
| 文件 | 内容 |
|---|---|
采集要求.md | 要采哪些字段、月薪和招聘人数怎么拆、用什么判断重复 |
备用数据/jobs_备用_20261019.csv | 课程组 2026-10-19 22:50 采的 30 条。网站打不开、工具实在接不上时,用它做后面的核验步骤 |
第 0 步:建项目
做什么
- 把材料包里的
01_岗位采集文件夹整个拷到你放作业的位置,改名岗位采集。 - Claude Code:VS Code 打开
岗位采集文件夹,新建终端,输入claude回车,信任这个文件夹。WorkBuddy:新建一个任务,工作目录选岗位采集。
做对了会看到:文件栏里有 采集要求.md 和 备用数据/;Claude Code 欢迎框第三行是这个文件夹的路径,WorkBuddy 任务的工作目录是它。
第 1 步:自己先看一眼网页
做什么:用你自己的浏览器打开 https://www.ncss.cn/student/jobs/index.html,关键词框输入“金融”,点“搜索”。翻到第 2 页,看看地址栏有没有变;再看分页栏和每条岗位显示了哪些信息。
做对了会看到:
- 每页 10 条。每条显示职位名称(蓝色链接)、学历要求和月薪(如“本科及以上 | 6-8K/月”)、地区和专业要求、单位名称、单位性质、规模和招聘人数(如“民营企业 | 1-49人 | 招聘3人”),右侧有一个时间(如“2026-10-19 17:04”)。
- 翻到第 2 页,地址栏还是
https://www.ncss.cn/student/jobs/index.html,没有页码。 - 分页栏是
1 2 3 4 5 >,后面一个跳页输入框和“确定”,没有“共多少条”。 - 列表右上方的“平台今日职位总数”是整个平台的数,搜“金融”后不变,不是搜索结果数。
列表上的那个时间是更新时间,不是发布日期,表头按“更新时间”写。
第 2 步:让智能体用浏览器采集 3 页
做什么:把下面这段复制、粘贴进输入框,回车。要整段粘贴,不要逐行手打:在终端里手打时,每按一次回车就会把那一行单独发出去。
这个项目要从国家大学生就业服务平台采集招聘岗位。先读 采集要求.md,再用浏览器工具做,不要凭记忆回答:
1. 打开 https://www.ncss.cn/student/jobs/index.html ,在关键词框输入“金融”,地区保持“全国”,点“搜索”。
2. 逐页读取前 3 页:每页先把 10 条逐条列给我看,再写入 岗位数据/jobs.csv。读完一页点分页栏的“>”翻页,等列表第一条职位名称变了再读。职位ID 在每个职位名称的链接地址里,读页面结构时能看到。
3. 字段和拆法按 采集要求.md。
4. 采完写 岗位数据/采集记录.md:采集时间(到分钟)、网址、搜索条件、每页条数。
不要登录、不要投递、不要收藏。
做对了会看到:
- 先有一次
browser_navigate打开职位页,再有填关键词、点“搜索”的调用;之后每翻一页是一次browser_click(点“>”),接一次browser_snapshot读这一页。弹出的 Chrome 窗口一直停在页面顶部,看不到下面的列表在变:这个网站搜索、翻页后会滚回顶部,它读的是页面结构,不靠滚动去看。翻没翻页,看终端里的调用记录和它每页列出的 10 条。 - 每页它先列出 10 条,再写文件。
岗位数据/jobs.csv有 30 行数据,第一行是表头。试采时第 1 页第一条是这样的(你采到的会不同):
页码,职位名称,单位,地区,学历要求,月薪原文,月薪下限(千元),月薪上限(千元),招聘人数原文,招聘人数,单位性质,更新时间,职位ID
1,金融高管猎头顾问助理(Executive Search Researcher),斐意特(北京)管理咨询有限公司,北京,本科及以上,6-8K/月,6,8,招聘3人,3,民营企业,2026-10-19 17:04,VDqctoKS25QhZyC6pcN3AK
岗位数据/采集记录.md写了采集时间和搜索条件。
如果它说“页面没有内容”或只拿到一个空框架,多半是用了只读网页正文的工具,没走浏览器。回它一句:“用浏览器工具打开并等列表加载出来再读。”
第 3 步:写脚本核行数
做什么:粘贴下面这段,回车。
写一个 Python 脚本 核验/check_jobs.py,读 岗位数据/jobs.csv,打印:
1. 总行数;每页条数
2. 按职位ID 的不重复数;按“职位名称+单位”的不重复数,并列出同名同单位出现两次以上的组
3. 月薪缺失数(含“面议”);月薪下限大于上限的行数
4. 各单位性质的数量
运行它,把输出原样给我看。
做对了会看到:屏幕上最后一次调用是 Bash(python 核验/check_jobs.py) 一类的运行脚本,输出是脚本打印的,不是模型自己数的。试采时的结果:
总行数 30;每页 10、10、10
不重复职位(按职位ID)30
不重复(按职位名称+单位)28:有 2 组同名同单位,职位ID 不同
月薪缺失 0;下限大于上限 0
单位性质:国有企业 11、民营企业 7、股份制企业 7、上市公司 4、其他 1
按“职位名称+单位”只有 28,是因为同一家单位发了两个同名岗位,职位ID 不同,不算重复。所以判断重复要用职位ID:它不以文字显示在页面上,在职位名称的链接里,形如 /student/jobs/VDqctoKS25QhZyC6pcN3AK/detail.html 中间那一串。
第 4 步:人核 3 条
做什么:在 jobs.csv 里随便挑 3 条(最好分在不同页),回到你自己的浏览器里找到这 3 条,核对职位名称、单位、月薪、招聘人数。浏览器窗口窄时,招聘人数在每条的右侧,要往右滚一下才看得到。
做对了会看到:3 条都对得上;月薪下限、上限和页面上的“a-bK/月”一致。对不上的,告诉它是哪一条、页面上是什么,让它重采那一页。
岗位每天在更新。你采完过一阵再去页面找,原来第 1 页的岗位可能挤到了第 2 页,或者被新岗位顶出了前 3 页。这时按职位名称在搜索框里搜它,或者在采集记录里写明“核对时已不在前 3 页”。
第 5 步:看分页栏为什么不能信
做什么:在你自己的浏览器里,地区框点开选“广东”,关键词仍是“金融”,点“搜索”。看这一页有几条,再点分页栏的“2”。
做对了会看到:试采时第 1 页只有 5 条,分页栏照样是 1 2 3 4 5 >;点“2”后列表处显示“暂时没有查询到符合要求的职位”。如果只看分页栏,会以为有 5 页、50 条。
地区选“广州”试采时是 0 条:多数岗位的地区只登记到省一级,按城市筛会漏掉。
再把地区换回“全国”,翻到第 5 页:试采时这一页只有 1 条,前 5 页合计 41 条;点第 6 页会弹出“请登录后查看”。不登录只能看前 5 页,练习只采前 3 页,用不着登录。
✅ 练习一自查
- 屏幕上有浏览器工具的调用,每翻一页一次;最后的数字来自运行脚本
jobs.csv30 行,每页 10 条- 按职位ID 不重复 30 条;按名称+单位少了的,能说出是哪几组、为什么不算重复
- 月薪拆成两列数字,“面议”留空;招聘人数“不限”留空,没有写成 0
- 你亲手回页面核过 3 条,一致
采集记录.md写了采集时间和搜索条件- 能说出分页栏显示的页数为什么不能直接信
想一想:你和同桌搜的是同一个词,采到的 30 条为什么可能不一样?复盘时要对齐哪两项,才能比较谁采错了?