爬虫停止的27种原因

爬虫停止的27种原因。IP封锁、验证码、结构更改等爬虫故障类型及解决方法介绍

107
爬虫停止的27种原因

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.webdriverwindow.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万韩元/月

时间

| 故障类别 | 平均

Comments

Add Comment

Your email won't be published and will only be used for reply notifications.

继续阅读

Get notified of new posts

We'll email you when 해시스크래퍼 기술 블로그 publishes new content.

Your email will only be used for new post notifications.