跳到主内容

course materials · 2026 秋季本科

练习一:翻页采集招聘岗位

Week 7 · 2026-10-20 · 上机材料

返回本周材料

在国家大学生就业服务平台翻页采集 30 条岗位,脚本核行数与职位 ID 去重;Claude Code+Playwright MCP 录播。

切换上机材料(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 步:建项目

做什么

  1. 把材料包里的 01_岗位采集 文件夹整个拷到你放作业的位置,改名 岗位采集。
  2. 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 页,用不着登录。

✅ 练习一自查

想一想:你和同桌搜的是同一个词,采到的 30 条为什么可能不一样?复盘时要对齐哪两项,才能比较谁采错了?