爬虫停止的27种原因

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

6,082
爬虫停止的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万韩元/月

时间

| 故障类别 | 平均

评论

发表评论

您的邮箱不会公开,仅用于回复通知。

继续阅读

Get notified of new posts

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

Your email will only be used for new post notifications.