--- title: "00-auto_gen_com" created: 2026-04-02 tags: - 项目 aliases: - auto_gen_com --- # auto_gen_com 这是**大公司招聘网站**的爬虫自动化模块,和之前学校就业网的模块是同一套架构,但针对企业招聘页面做了扩展。对比来看: --- ## 与上一个模块的区别 | | 学校就业网模块 | 大公司招聘模块(本模块) | | --- | --- | --- | | 目标 | 学校就业网公告列表 | 企业招聘网站职位列表 | | 提取字段 | 公告名称、时间、链接 | 额外增加部门、地点、人数、职位类别、薪资 | | 翻页 | 无 | `page_xxxxx.py` 处理翻页 | | 点击操作 | 无 | `click_xxxxx.py` 处理 Tab 切换 | | 浏览器控制 | 无(静态 HTML) | Playwright(动态页面) | --- ## 三类文件的分工 [[04-gen_00001|gen_00001]] 是职位列表解析函数,比学校版本复杂得多——除了公告名和时间,还要提取 `hd_dept`(部门)、`hd_loc`(工作地点)、`hd_job_num`(招聘人数)、`hd_job_category`(职位类别)、`hd_salary`(薪资)。字段提取时有多个备选 CSS 类(比如地点先找 `pos-locate`,找不到再找 `pos-workPlace`),增强了容错性。 [[01-click_50001|click_50001]] 负责处理**页面上的 Tab 点击**,比如先点"博士生招聘"筛选标签,再爬该 Tab 下的职位列表。用 Playwright 的 `locator` 实现,先试 `label`,找不到再试 `span`,也是双重容错。 [[05-page_00001|page_00001]] 负责**翻页控制**,通过点击 DataTables 插件的"下一页"按钮实现分页爬取,并检测按钮是否有 `disabled` 类来判断是否到末页。 --- ## 完整运行流程 ```text 启动爬取某公司招聘页 │ ├─ click_xxxxx.py(可选) │ 点击筛选 Tab(如"博士生招聘") │ ├─ 获取当前页 HTML │ func_call.py → gen_000xx.py │ 提取职位列表 → 写入 JSON │ ├─ 结果为空? │ └─ func_gen_bygpt.py → GPT-4o 生成新解析函数 │ ├─ page_xxxxx.py │ 点击"下一页",重复上面步骤 │ └─ 按钮 disabled → 爬取结束 ``` ## 命名规则 文件名里的数字编号暗示了用途:`gen_` 是解析函数,`click_` 是点击操作,`page_` 是翻页操作,后缀数字对应具体的公司或网站 ID,每家公司独立一套文件,互不干扰。 --- **项目分区导航**:[[03-gen_000xx|gen_000xx]] ⬅️ | 00-auto_gen_com | ➡️ [[01-click_50001|click_50001]]