针对拉勾网(lagou.com)——国内主要互联网招聘平台——的职位信息批量采集。
采用双重数据提取策略:优先从 Next.js 的 SSR 渲染数据(__NEXT_DATA__)中
直接提取结构化 JSON,失败时降级为 DOM 选择器遍历。使用持久化浏览器档案
和反自动化检测绕过技术,成功避开拉勾网的反爬拦截。
- Playwright launch_persistent_context 使用独立 Chrome Profile 目录
保持登录态和浏览器指纹一致性
- 禁用自动化标志 --disable-blink-features=AutomationControlled
- 自定义 User-Agent 伪造为 Chrome 125 正式版浏览器
- 手动验证码等待循环:实时检测 .nc-container 和 aliyunCaptcha-slider
等待用户手动完成滑动验证后继续(最长 180s 超时)
- 主数据路径:page.evaluate("window.__NEXT_DATA__") 提取 Next.js 的
完整 SSR JSON 数据,递归遍历 15 层深度查找 positionId 和 positionName
- 降级路径:DOM querySelectorAll 遍历 .job-list-box li 等选择器
- 数据容错:positionName/positionId/salary/company 等多个备选字段名兼容
- 标签智能聚合:positionLables/labels/tags/skillTags/industryField 等多源合并去重
- 岗位描述 HTML 标签清洗,按 120 字截断预览
- JSON 结构化输出,字段:职位名称/薪资/工作地点/学历/年限/标签/公司/描述