← ClaudeAtlas

crawllisted

爬虫自动化最佳实践——浏览器反检测策略、各平台已知技巧、速率限制、captcha 处理。在写/修改爬虫脚本时调用,避免重复踩坑。
xiaoshuai1024/skills · ★ 0 · AI & Automation · score 72
Install: claude install-skill xiaoshuai1024/skills
# 爬虫自动化最佳实践 ## 何时用本 skill - 编写或修改 BOSS直聘 / 猎聘 / 智联 等平台的爬虫 - 遇到 captcha、白屏、空列表等反爬拦截 - 选择浏览器导航策略时 ## 核心原则 1. **不要从零推理策略**——下面记录的是已经被验证有效的方法,直接遵循 2. **爬虫的本质是模拟真人**——越快越假,越规律越容易被封 3. **每个平台的反爬策略不同**——不要把一个平台的方法套到另一个 --- ## 一、浏览器自动化通用规则 ### 导航策略(最重要) | 方法 | 推荐度 | 说明 | |------|--------|------| | `page.goto(url)` 直接导航 | ✅ **始终优先** | 最接近真人地址栏输入,反爬特征最少 | | `page.click()` + 等待导航 | ⚠️ 仅限必要 | 可能触���前端路由检测 | | CDP (`CDPSession.send`) | ❌ **避免** | BOSS直聘 等平台会检测 CDP 调用特征 | **结论:始终用 `page.goto()` 直接导航到目标 URL,不要用 click + 等待导航** ### 反检测清单 - [ ] 使用 stealth 插件(`puppeteer-extra-plugin-stealth` 或手动 patch) - [ ] 禁用 `webdriver` 属性:`page.evaluateOnNewDocument(() => delete navigator.__proto__.webdriver)` - [ ] 随机化 User-Agent(不同会话用不同 UA) - [ ] 添加合理的页面操作延迟(每个操作间隔 1-3 秒,随机) - [ ] 不要关闭用户已有的浏览器会话——复用已登录的上下文(cookie/Storage) - [ ] 页面加载后随机滚动(模拟真人阅读行为) ### 请求间隔 ``` 每次搜索之间: 5-15 秒随机 每次翻页之间: 8-20 秒随机 每次完整爬取: 不超过 50 条,否则强制休息 60 秒 同一会话总次数: 不超过 3 轮,之后必须新建浏览器上下文 ``` --- ## 二、各平台已知策略 ### BOSS直聘 - **反爬等级**:🔴 严苛 - **已验证有效的方法**: - 使用 `page.goto()` 直接导航,**禁止** CDP/UI click 导航 - 必须使用 stealth 插件,否则 about:blank 拦截 - 搜索 URL 格式:`https://www.zhipin.com/web/geek/job?city=100010000&query=技术总监` - 搜索结果加载后等 3-5 秒让 DOM 完全渲染 - 如果出现验证码弹窗 → 暂停该会话,切换 IP 或等 10 分钟后重试 - **不要**点击「搜索按钮」——直接 goto 搜索 URL - **已知无效**: - CDP 导航 → 触发检测 - 高频请求(< 3 秒间隔)→ 触发 captcha ### 猎聘 - **反爬等级**:🟡 中等 - **已验证有效的方法**: - 用户已登录状态下,白屏概率降低 - 搜索 URL 格式:`https://www.liepin.com/zhaopin/?key=技术总监` - 翻页使用 URL 参数:`?ke