IP封锁,验证码,结构更改... 比制作爬虫更难的是保持其运行
阅读时间: 12分钟 | 截至2026年1月
核心摘要
制作爬虫的第一个星期运行得很顺利。问题在于之后。
网站不断变化,安全性不断加强,基础设施也会突然动摇。Hashscraper在8年内爬取了5000多个网站,总结了27种故障类型,按类别进行了整理。包括故障频率,应对难度,自行解决的实际成本。
| 类别 | 故障类型数量 | 应对难度 |
|---|---|---|
| 访问受阻 | 8种 | |
| 网站更改 | 6种 | |
| 基础设施/网络 | 5种 | |
| 认证/会话 | 4种 | |
| 数据质量 | 4种 |
类别 1: 访问受阻 (8种)
爬虫最常遇到的障碍。一旦目标网站认为你是“机器人”,数据收集就会停止。
1. IP封锁 (速率限制)
症状: 突然出现403 Forbidden或429 Too Many Requests
原因: 同一IP在短时间内大量请求
频率: (非常常见)
应对难度:
这是最基本的封锁。减慢请求速度或使用代理池即可解决。但是,代理管理本身也是一个额外的任务。需要关注IP质量管理,更换被封IP,进行可用性监控等。
自行解决成本: 代理服务每月50万~200万韩元 + 管理人员
2. Akamai Bot Manager
症状: 访问页面时只显示Akamai logo和等待页面
原因: 专业的机器人检测安全解决方案对浏览器指纹进行精细分析
频率: (在大型电商中很常见)
应对难度:
在韩国,Coupang是典型代表。即使使用Selenium或Playwright进行访问,也会对浏览器指纹,JavaScript执行模式,鼠标轨迹,滚动速度等进行分析。一般的爬虫工具几乎无法绕过。
2026年1月的实际测试中,Firecrawl(包括Stealth Proxy)和Jina Reader都被Coupang Akamai封锁。Hashscraper通过自身的浏览器仿真技术突破了这一障碍。
自行解决成本: 专业人员 + 持续的绕过技术开发(年度数百万韩元)
3. 验证码 (CAPTCHA)
症状: 显示“我不是机器人”验证页面
原因: 检测到可疑流量模式时需要确认人类身份
频率:
应对难度:
reCAPTCHA,hCaptcha可以通过外部解决方案(2Captcha,Anti-Captcha)自动解决。但是像Naver Shopping的收据验证码这样的自定义验证码无法通过外部服务处理。需要训练单独的机器学习模型,如果网站更改验证码图像,则还需要重新训练模型。
自行解决成本: 通用验证码解决每个项目2~5韩元 + 需要单独开发机器学习模型
4. 基于JavaScript的机器人检测
症状: 页面加载后空白或无限重定向
原因: 客户端JavaScript验证浏览器环境
频率:
应对难度:
简单的HTTP请求(requests,urllib)会立即被检测到。即使使用Headless浏览器,也会通过navigator.webdriver,window.chrome等对象识别自动化环境。虽然有Puppeteer Stealth,undetected-chromedriver等工具,但由于每个网站的检测逻辑不同,需要个别应对。
5. 用户代理/头部验证
症状: 403 Forbidden或异常响应
原因: 请求头与实际浏览器模式不匹配
频率:
应对难度:
这是最简单的封锁,也是最容易应对的。只需匹配User-Agent,Accept,Referer头即可。这是初学者遇到的第一个问题,但仅凭此无法通过高级封锁。
6. 基于地理位置的封锁 (Geo-blocking)
症状: 海外IP访问时被封锁或返回不同内容
原因: 仅允许特定国家IP访问
频率:
应对难度:
如果在海外服务器(如AWS US-East)上爬取韩国网站,则经常会发生。需要使用韩国IP代理或在国内服务器上运行。
7. 网络爬虫排除标准 (robots.txt)
症状: 可以爬取,但存在法律风险
原因: 网站通过robots.txt禁止特定路径爬取
频率: (大多数网站都有)
应对难度: (技术) / (法律)
技术上可以忽略,但法律上是另一回事。当以商业目的爬取大公司网站时,务必进行确认。
8. WAF (Web Application Firewall)
症状: 突然封锁,响应不一致
原因: Cloudflare,AWS WAF等综合分析流量模式
频率:
应对难度:
WAF综合分析IP,请求频率,浏览器指纹,TLS握手模式。要绕过Cloudflare的“5秒挑战”,必须具备JavaScript执行环境。从2025年开始,越来越多的网站开始使用Cloudflare Turnstile替代reCAPTCHA。
类别 2: 网站更改 (6种)
制作时完美的爬虫,某一天却返回空数据。没有人会告诉你。
9. HTML结构更改
症状: 返回空数据或错误数据
原因: 目标网站前端更新
频率: (最常见的故障原因)
应对难度:
Naver Shopping每年更新数十次前端。Coupang,11th Street,Gmarket也是如此。类名从product-price更改为prd_price_v2,div结构发生变化,添加新组件。
实际数据: 每个爬虫每年平均需要应对6~12次结构更改。如果有10个爬虫,每年需要60~120次 — 每3天就会有一次故障。
自行解决成本: 每次3~5小时 × 每年8次 = 每年24~40小时/爬虫
10. SPA/动态渲染转换
症状: 以前成功获取的页面只返回空HTML
原因: 从SSR到SPA转换时,基于HTTP的爬虫完全无效。需要基于Headless浏览器进行全面重写,资源消耗也会增加10倍以上。
11. API端点更改
症状: 调用API时返回404或响应格式更改
原因: 内部API URL/模式更改
频率:
应对难度:
直接调用SPA网站的内部REST/GraphQL API比HTML解析更有效,但如果API版本从v2更改为v3,则需要重新编写整个解析逻辑。
12. URL模式更改
症状: 旧URL返回404
原因: URL结构更新
频率:
应对难度:
例如:/product/12345 → /shop/items/12345。需要修改爬虫的URL生成逻辑。
13. 分页方式更改
症状: 下一页加载失败,只能重复收集第一页
原因: 页码 → 无限滚动,或偏移 → 游标转换
频率:
应对难度:
14. 内容加载方式更改
症状: 仅收集部分数据,其余数据丢失
原因: 惰性加载,基于Intersection Observer的滚动触发引入
频率:
应对难度:
类别 3: 基础设施/网络 (5种)
爬虫代码正常,但在执行环境中出现问题。
15. 服务器资源不足
症状: 速度下降,OOM(内存不足)崩溃
原因: 内存,CPU,磁盘空间不足
频率:
应对难度:
Headless浏览器(Chromium)每个标签消耗200~500MB内存。如果同时爬取10个页面,则需要2~5GB。考虑到内存泄漏,定期重新启动进程是必要的。
16. 代理故障
症状: 连接超时,间歇性失败
原因: 代理服务器宕机,IP过期,服务提供商故障
频率:
应对难度:
17. DNS解析失败
症状: 出现“找不到主机”错误
原因: DNS服务器故障,域名更改
频率:
应对难度:
18. SSL/TLS证书问题
症状: SSL握手失败
原因: 目标网站证书过期/更新延迟
频率:
应对难度:
19. 目标服务器宕机
症状: 503 Service Unavailable,504 Gateway Timeout
原因: 目标网站维护或故障
频率:
应对难度: (重试 + 实现通知)
类别 4: 认证/会话 (4种)
爬取需要登录的网站时特别棘手。
20. 登录会话过期
症状: 突然重定向到登录页面
原因: 会话Cookie过期,令牌TTL超时
频率:
应对难度:
21. 2FA/MFA认证要求
症状: 要求SMS/电子邮件验证
原因: 在新设备/IP上登录需要安全验证
频率:
应对难度:
自动化2FA非常困难,大多数服务条款禁止。几乎不可能在没有手动干预的情况下解决。
22. OAuth令牌刷新失败
症状: 调用API时返回401 Unauthorized
原因: 刷新令牌过期,OAuth应用程序权限更改
频率:
应对难度:
23. Cookie策略更改
症状: 旧的身份验证流程突然中断
原因: SameSite策略加强,Cookie名称/域/路径更改
频率:
应对难度:
类别 5: 数据质量 (4种)
爬虫可以正常运行,但收集到的数据令人难以置信。发现越晚,损失越大。
24. 诱饵数据
症状: 收集到的数据中混入虚假信息
原因: 网站故意向机器人提供错误数据
频率:
应对难度:
这是最狡猾的防御手段。只向机器人展示与实际不符的价格,不存在的商品。在人工对比之前很难发现数据污染。
25. 个性化内容
症状: 相同URL每次收集的数据不同
原因: 个性化算法,A/B测试,地区价格差异
频率:
应对难度:
26. 编码问题
症状: 韩文乱码,特殊字符错误
原因: 混合使用UTF-8和EUC-KR,字符集不匹配
频率: (在韩国网站中尤为常见)
应对难度:
在旧的韩国购物网站或公共机构网站中经常发生。页面头部声明为UTF-8,但实际正文为EUC-KR的情况仍然存在。
27. 动态价格/库存不匹配
症状: 收集到的价格与实际显示价格不同
原因: 实时价格变动,地区/会员等级价格差异
频率: (电商必须考虑)
应对难度:
实际成本
如果所有27种故障都自行解决,需要多少成本?
人力
| 角色 | 需要水平 | 年薪(2025年标准) |
|---|---|---|
| 爬虫高级开发人员 | 5年+经验,绕过封锁实操 | 800万~1.2亿韩元 |
| 基础设施工程师 | 服务器/代理/监控运维 | 600万~900万韩元 |
如果有5个以上的爬虫,至少有1人应该是专门负责爬虫的。如果兼职,故障应对就会延迟,导致数据空白。
基础设施
| 项目 | 月成本 |
|---|---|
| 服务器(爬虫运行) | 50万~200万韩元 |
| 代理服务 | 50万~300万韩元 |
| 验证码解决服务 | 10万~50万韩元 |
| 监控/通知 | 10万~30万韩元 |
| 总计 | 120万~580万韩元/月 |
时间
| 故障类别 | 平均




