网站防护检测:反爬、WAF 和验证码

在启动爬虫或购买代理之前先检测网站。服务会像浏览器一样打开它,显示网站用了哪种反爬、WAF 或验证码,以及是否会把页面交给不带浏览器的请求。

例如:

为什么抓取前要先检测网站

网站的防护决定了用什么工具抓取、买什么代理。检测只需几秒,而且免费。

位于多层防护之后的网站窗口:部分请求能通过,部分被反爬拦下
  1. 选择工具

    网站直接返回页面,用 curl、requests 或 Scrapy 配合代理就够了。网站要求执行 JavaScript,就从一开始准备浏览器或反检测浏览器,否则爬虫会卡在验证上。

  2. 选择代理

    DataDome、Akamai、PerimeterX 和 Qrator 会评估 IP 信誉和请求频率。这类网站要选有成千上万地址并支持轮换的代理池,让每个 IP 承担的请求很少。

  3. 测试你的代理

    购买后,在同一网站上用 target 模式运行检测脚本。它会通过每个代理打开网站,显示多少能通过、多少遇到验证码。

检测能识别什么

通过响应头、Cookie 和页面代码识别系统,CDN 和 DDoS 防护还会通过网站的 DNS 和网络(ASN)识别。网站更换防护时我们会补充列表。

反爬

  • Cloudflare Challenge
  • Cloudflare Bot Management
  • Akamai Bot Manager
  • DataDome
  • HUMAN (PerimeterX)
  • Kasada
  • Radware Bot Manager
  • Netacea
  • Variti
  • ServicePipe
  • Ozon Antibot
  • Wildberries Antibot
  • Avito Firewall
  • Imperva Advanced Bot Protection
  • Anubis
  • Imunify360
  • Fingerprint (FingerprintJS)
  • ThreatMetrix

WAF 和 DDoS 防护

  • Imperva (Incapsula)
  • AWS WAF
  • F5 BIG-IP ASM
  • Reblaze
  • Sucuri
  • Vercel Firewall
  • DDoS-Guard
  • Qrator (Curator)
  • StormWall
  • Barracuda WAF
  • Citrix NetScaler
  • Fortinet FortiWeb
  • ModSecurity
  • Wordfence
  • BitNinja

验证码

  • Cloudflare Turnstile
  • Yandex SmartCaptcha
  • Google reCAPTCHA
  • hCaptcha
  • GeeTest
  • Arkose Labs (FunCaptcha)
  • Friendly Captcha
  • MTCaptcha
  • ALTCHA
  • Prosopo Procaptcha
  • Tencent Captcha
  • Alibaba Cloud Captcha

CDN

  • Cloudflare
  • Akamai
  • Amazon CloudFront
  • Fastly
  • Gcore
  • Bunny CDN
  • CDN77
  • Azure Front Door
  • Google Cloud CDN
  • KeyCDN
  • Edgio (Edgecast, Limelight)
  • Alibaba Cloud CDN
  • Tencent EdgeOne
  • Vercel
  • Netlify
  • CDNvideo
  • NGENIX

如何看结果

网站返回了页面

响应码 200,页面正常。这里也可能有反爬:它会观察请求频率,稍后再开启验证。

浏览器验证

返回的不是页面,而是检测浏览器的脚本。不执行 JavaScript 就无法继续。

验证码

网站要求完成验证码。通常是 IP 信誉差或请求过多时出现。

拒绝

响应码 403、429 或 503,且没有验证页面。网站对这类请求或这个网络关闭。

关于防护检测的问题

01服务如何识别网站的防护?
服务器像 Chrome 浏览器一样打开地址,并查看响应:请求头、Cookie 和页面代码。每种防护系统都会留下自己的痕迹,比如 Cloudflare 的 __cf_bm Cookie 或 Akamai 的 _abck,检测就是读取这些痕迹。
02为什么我的爬虫看到的不一样?
我们从 Cloudflare 的地址只发一次请求。反爬会综合 IP、请求频率和行为,所以每分钟发一百次请求的爬虫,可能在我们单次请求能通过的地方遇到验证码。
03什么是浏览器验证?
这是一个带脚本的页面,用来检查是否是真实浏览器打开的:它会执行 JavaScript、读取指纹,有时还要求等待。curl 和 requests 过不了这种页面。
04代理能应对反爬吗?
代理让请求使用不同的 IP,反爬开启验证的次数会减少。如果网站要求执行 JavaScript,只靠代理不够:需要浏览器或反检测浏览器,再接入代理。
05服务会保存我检测的地址吗?
不会。服务器只打开地址一次,把结果返回给你的浏览器,既不保存地址,也不保存网站的响应。

适合有防护网站的代理

MIX 代理池最多 25,000 个 IP,无限流量,同一端口支持 HTTP 和 SOCKS5,按 IP 接入。测试一小时只需 $1。

查看套餐
登录/注册