Akamai Bot Manager 保護的高價值目標比任何其他反爬系統都多——航空公司、球鞋搶購、票務、大型零售。它也是這個領域裡資歷最老的玩家,這意味著兩件事:它的檢測最成熟,封鎖手法也最有特色。Akamai 很少給你彈驗證碼。你拿到的是邊緣層悄無聲息的 403、無限重定向迴圈,或者它的招牌動作——頁面能正常載入,但返回的是被汙染過的假資料。
本文講清楚 2026 年 Akamai 到底檢測什麼,以及一套行之有效的四層方案,思路和我們的 DataDome/PerimeterX 指南、Cloudflare 指南 一脈相承。免責宣告同樣適用:這是用於以合理速率抓取公開可訪問的資料,而非用於濫用。
Akamai 對每個請求在三個層面打分,分數透過 _abck cookie 跟隨你的會話:
python-requests 或 Go-http 的 ClientHello 在第一個資料包就會被標記。原理可看 我們的 JA3/JA4 解析。:method :path :authority :scheme 對比 Chrome 的 :method :authority :scheme :path),即便你偽裝了 TLS,也能憑這些認出你的客戶端。Akamai 站點上大多數「我的 JA3 完美無缺但還是被封」的情況,都是 HTTP/2 指紋不匹配。Akamai 的 JavaScript 會收集一大坨加密的 "sensor_data" 負載:滑鼠軌跡、按鍵時序、裝置方向、canvas/WebGL 雜湊、自動化痕跡。它把這些 POST 到被保護的域名,響應會升級(或汙染)你的 _abck cookie。有效的 _abck 在特定位置含有 ~0~;被標記的則含有 ~-1~。感測器格式每隔幾周就會變——這就是為什麼「錄製再回放」的感測器活不久。
請求節奏、導航順序(你是不是沒載入過商品頁就直接打了商品 API?)、以及會話時長。Akamai 很有耐心:它有時會放過最初幾個請求,等分數累積起來再在會話中途把你封掉。
資料中心 IP 在 Akamai 保護的站點上已經死透了——光是 ASN 檢查就能幹掉它們。請用住宅代理,而且因為 _abck cookie 繫結在你的會話上,要用 sticky 會話:一個 IP 在單個身份的整個生命週期內保持不變,cookie 和 IP 作為一個整體一起輪換。會話中途換 IP 會讓你辛苦攢下的感測器信任值作廢。(完整策略見 sticky vs 輪換會話。)
# 一個 sticky 身份 = 一個 session id,保持約 10 分鐘
socks5h://USERNAME:[email protected]:913
對於純 HTTP 抓取,你的客戶端必須同時偽裝 TLS 和 HTTP/2。curl_cffi 兩者都能正確處理:
from curl_cffi import requests
r = requests.get(
"https://www.target-site.com/api/inventory",
impersonate="chrome", # TLS + HTTP/2 指紋一起偽裝
proxies={"https": "socks5h://USERNAME:[email protected]:913"},
)
僅僅開啟 HTTP/2 的普通 httpx 是不夠的——httpx 的 h2 指紋是它自己的,不是 Chrome 的。如果你 TLS 指紋很乾淨卻還在吃 403,幾乎都是這個原因。(背景知識見 curl_cffi & tls-client 指南。)
除了靜態頁面之外的任何東西,都要用真實瀏覽器來完成會話握手:載入落地頁,讓感測器指令碼跑起來,做幾個像人的互動(滾動、滑鼠移動),然後再把 cookie 提取給你的 HTTP 客戶端——而且要走同一個代理:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(proxy={
"server": "us.jibaoproxy.com:913",
"username": "USERNAME", "password": "PASSWORD",
})
page = browser.new_page()
page.goto("https://www.target-site.com/")
page.mouse.move(300, 400); page.mouse.wheel(0, 600)
page.wait_for_timeout(3000) # 感測器 POST 在這裡發生
cookies = page.context.cookies()
abck = next(c["value"] for c in cookies if c["name"] == "_abck")
# abck 裡含 "~0~" -> 有效;含 "~-1~" -> 被標記,換新身份重來
| 症狀 | 可能所在層 | 修法 |
|---|---|---|
| 首個請求就 403,根本沒涉及 cookie | TLS / HTTP/2 指紋 | 用 curl_cffi 偽裝,別用原生 httpx |
| 最初幾個請求 OK,5–10 個之後被封 | IP 信譽或節奏 | 住宅 sticky 會話,放慢速度 |
_abck 裡含 ~-1~ | 感測器 / 自動化痕跡 | 真實瀏覽器握手,先做人類互動 |
| 200 OK 但資料看起來不對 | 被汙染的響應 | 你已被標記——徹底重置身份 |
| 進站時無限重定向迴圈 | IP 在邊緣層被封 | 換新住宅 IP,確認 ASN 沒被標記 |
_abck),外加耐心的行為評分。_abck;檢查是否含 ~0~。新用戶註冊即送 500M免費流量,首次儲值另有贈金。優惠限時供應。