auto_gen_com

这是大公司招聘网站的爬虫自动化模块,和之前学校就业网的模块是同一套架构,但针对企业招聘页面做了扩展。对比来看:


与上一个模块的区别

学校就业网模块 大公司招聘模块(本模块)
目标 学校就业网公告列表 企业招聘网站职位列表
提取字段 公告名称、时间、链接 额外增加部门、地点、人数、职位类别、薪资
翻页 page_xxxxx.py 处理翻页
点击操作 click_xxxxx.py 处理 Tab 切换
浏览器控制 无(静态 HTML) Playwright(动态页面)

三类文件的分工

gen_00001 是职位列表解析函数,比学校版本复杂得多——除了公告名和时间,还要提取 hd_dept(部门)、hd_loc(工作地点)、hd_job_num(招聘人数)、hd_job_category(职位类别)、hd_salary(薪资)。字段提取时有多个备选 CSS 类(比如地点先找 pos-locate,找不到再找 pos-workPlace),增强了容错性。

click_50001 负责处理页面上的 Tab 点击,比如先点"博士生招聘"筛选标签,再爬该 Tab 下的职位列表。用 Playwright 的 locator 实现,先试 label,找不到再试 span,也是双重容错。

page_00001 负责翻页控制,通过点击 DataTables 插件的"下一页"按钮实现分页爬取,并检测按钮是否有 disabled 类来判断是否到末页。


完整运行流程

启动爬取某公司招聘页
        │
        ├─ 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,每家公司独立一套文件,互不干扰。


项目分区导航gen_000xx ⬅️ | 00-auto_gen_com | ➡️ click_50001