Akamai Bot Manager protège plus de cibles à forte valeur que tout autre système anti-bot — compagnies aériennes, sorties de sneakers, billetterie, grande distribution. C'est aussi le plus ancien acteur du jeu, ce qui signifie deux choses : sa détection est la plus mature, et son style de blocage est le plus distinctif. Akamai vous montre rarement un captcha. Vous obtenez un 403 silencieux sur l'edge, une boucle de redirection infinie ou — sa signature — une page qui se charge correctement mais renvoie des données empoisonnées.
Ce guide couvre ce qu'Akamai vérifie réellement en 2026 et une approche fonctionnelle en quatre couches, dans le même esprit que notre guide DataDome/PerimeterX et notre guide Cloudflare. Le même avertissement s'applique : ceci concerne le scraping de données accessibles publiquement à un rythme raisonnable, pas l'abus.
Akamai note chaque requête sur trois couches, et le score suit votre session via le cookie _abck :
python-requests ou Go-http est signalé dès le premier paquet. Consultez notre explication de JA3/JA4 pour voir comment cela fonctionne.:method :path :authority :scheme contre le :method :authority :scheme :path de Chrome) identifient votre client même lorsque vous usurpez le TLS. La plupart des cas de « mon JA3 est parfait mais je suis quand même bloqué » sur les sites Akamai sont des incohérences d'empreinte HTTP/2.Le JavaScript d'Akamai collecte une grande charge utile chiffrée « sensor_data » : trajectoires de la souris, timing des frappes au clavier, orientation de l'appareil, hachages canvas/WebGL, artefacts d'automatisation. Il l'envoie en POST au domaine protégé, et la réponse met à niveau (ou empoisonne) votre cookie _abck. Un _abck valide contient ~0~ à une position spécifique ; un signalé contient ~-1~. Le format du capteur change toutes les quelques semaines — c'est pourquoi les capteurs capturés et rejoués meurent vite.
Rythme des requêtes, ordre de navigation (avez-vous atteint l'API produit sans jamais charger la page produit ?) et ancienneté de la session. Akamai est patient : il laisse parfois passer les premières requêtes et vous bloque en milieu de session une fois que le score s'accumule.
Les IP de centre de données sont mortes sur les sites protégés par Akamai — la seule vérification d'ASN les élimine. Utilisez des proxies résidentiels, et comme le cookie _abck est lié à votre session, utilisez des sessions sticky : une IP maintenue pendant toute la durée de vie d'une identité, cookies et IP tournant ensemble comme une seule unité. Les changements d'IP en milieu de session invalident la confiance du capteur que vous avez bâtie. (Stratégie complète : sessions sticky vs rotatives.)
# One sticky identity = one session id, held ~10 min
socks5h://USERNAME:[email protected]:913
Pour le scraping en HTTP seul, votre client doit usurper à la fois le TLS et le HTTP/2. curl_cffi fait les deux correctement :
from curl_cffi import requests
r = requests.get(
"https://www.target-site.com/api/inventory",
impersonate="chrome", # TLS + HTTP/2 fingerprint together
proxies={"https": "socks5h://USERNAME:[email protected]:913"},
)
Un simple httpx avec HTTP/2 activé ne suffit pas — l'empreinte h2 de httpx est la sienne, pas celle de Chrome. Si vous recevez des 403 avec une empreinte TLS propre, c'est presque toujours pour cette raison. (Contexte : guide curl_cffi & tls-client.)
Pour tout ce qui dépasse les pages statiques, lancez un navigateur réel pour le handshake de la session : chargez la page d'accueil, laissez le script du capteur s'exécuter, effectuez quelques interactions à allure humaine (scroll, mouvement de souris), puis extrayez les cookies pour votre client HTTP — à travers le même proxy :
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) # sensor POST happens here
cookies = page.context.cookies()
abck = next(c["value"] for c in cookies if c["name"] == "_abck")
# "~0~" in abck -> valid; "~-1~" -> flagged, restart with new identity
| Symptôme | Couche probable | Solution |
|---|---|---|
| 403 à la première requête, aucun cookie en jeu | Empreinte TLS / HTTP/2 | Usurpation avec curl_cffi, pas httpx brut |
| Premières requêtes OK, bloqué après 5–10 | Réputation d'IP ou rythme | Sessions résidentielles sticky, ralentissez |
_abck contient ~-1~ | Capteur / artefacts d'automatisation | Handshake avec navigateur réel, interaction humaine d'abord |
| 200 OK mais les données semblent fausses | Réponse empoisonnée | Vous êtes signalé — réinitialisation complète de l'identité |
| Boucle de redirection infinie à l'entrée | Blocage au niveau de l'edge sur l'IP | Nouvelle IP résidentielle, vérifiez que l'ASN n'est pas signalé |
_abck) et une notation comportementale patiente._abck valide avec un navigateur réel avant de toucher aux APIs ; vérifiez la présence de ~0~.Sessions sticky, ASN propres, tarification au GB — 500 Mo de trafic gratuit, sans carte.
Démarrer l'essai gratuitLes nouveaux utilisateurs reçoivent 500 Mo à l'inscription, plus un bonus sur la première recharge. Offre à durée limitée.