一套完整的 BOSS 直聘求职自动化工具:爬取岗位 → 解析简历 → 智能匹配 → 可视化报告 → 自动投递。所有 LLM 分析由 Claude Code 自身模型能力完成,帮助你更好精投简历。
源代码: GitHub - zhansan379/boss-crawler-skill: 一套完整的 BOSS 直聘求职自动化工具skill:爬取岗位 → 解析简历 → 智能匹配 → 可视化报告 → 自动投递。所有 LLM 分析由 Claude Code 自身模型能力完成。 · GitHub
先由 Python 规则引擎对全部岗位做快速初筛(薪资、经验、学历、技能词边界匹配 + 别名归一化),再对候选岗位执行 Claude 语义深度分析(JD 职责与简历项目的实质匹配、技术栈契合度)。
同时生成 Bauhaus 风格 HTML 可视化报告,包含所有岗位的匹配度卡片、分类统计图表和投递状态。
踩过的坑
我使用DrissionPage的get()方法加载一个基于 React 构建的单页应用(SPA),肉眼观察浏览器窗口,页面内容在 2-3 秒内就已经完整渲染显示出来了,但代码层面却硬生生阻塞了22秒才往下执行。
翻阅 DrissionPage 的官方文档和底层源码,我发现get()方法默认的load_mode是normal。
在normal模式下,它底层监听的是浏览器的document.readyState === 'complete'状态。这也就意味着,它不仅仅是等 DOM 渲染,它在等所有依赖资源加载完成,包括:
巨大的高清轮播图
无用的广告 JS / 埋点 SDK
谷歌/第三方统计脚本(通常很慢)
字体文件(.woff2)
结论:SPA 的首屏显示依赖的是 JS 执行后的动态 DOM 渲染(触发DOMContentLoaded),而Load事件则被大量静态资源拖垮了。这就是“眼见为实”与“程序阻塞”之间的时间差。
“模拟请求”永远优于“模拟点击/浏览器渲染”。
浏览器自动化(Selenium/DrissionPage)是爬虫的“兜底方案”,而不是“首选方案”。当页面数据通过 API 清晰返回且无复杂加密时,使用 requests/httpx 直调接口,不仅速度快了一个量级,而且避开了前端改版导致的选择器失效问题。