Réutiliser un proxy entre les requêtes
Découvrez comment conserver la même sortie de proxy lors des requêtes suivantes, afin que les rendus JavaScript, les appels d'API et les requêtes paginées partent tous de la même adresse IP.
Pourquoi réutiliser un proxy
Lorsque vous atteignez une cible pour la première fois, FourA choisit un proxy fonctionnel pour vous. Chaque réponse inclut l'ID du proxy utilisé. Renvoyez cet ID lors des requêtes ultérieures et :
- Les pages suivantes passent par la même sortie, de sorte que les cookies de session et les rate limits restent cohérents pour la cible.
- Une requête ciblée sur un pays reste dans votre liste d'autorisation sans nécessiter une nouvelle sélection.
- L'endpoint
POST /api/single/économique se rejoue via un proxy que vous avez déjà payé pour découvrir, au coût Single au lieu du coût Proxy.
L'ID du proxy est une chaîne base36 opaque (comme A1B2C3). Ce n'est jamais une adresse IP brute.
Où se trouve l'ID dans une réponse
| Endpoint | Champ | Quand il est présent |
|---|---|---|
POST /api/auto/ |
session.proxy |
Quand returnSession est true (par défaut) |
POST /api/single/ |
proxy (niveau supérieur) |
Uniquement lorsque la requête a fourni un champ proxy |
POST /api/proxy/ |
proxy (niveau supérieur) |
Toujours, en cas de succès |
POST /api/browser/ |
proxy (niveau supérieur) |
Uniquement lorsque la requête a fourni un champ proxy |
Pour obtenir une nouvelle sortie sans en fixer une, commencez par Auto ou Proxy. Les deux découvrent une sortie fonctionnelle et vous renvoient son ID.
Modèle 1 : Auto découvre, Single rejoue
Idéal lorsque vous avez une cible que vous ne connaissez pas encore. Auto parcourt l'échelle une fois, puis Single réutilise la session gagnante pour chaque page suivante.
import requests
API = "https://eu.api.foura.ai"
H = {"X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"}
# Step 1: discover a working exit with Auto.
r = requests.post(f"{API}/api/auto/", headers=H, json={
"url": "https://example.com/product/42",
"validate": {"data": {"accept": ["Add to cart"]}}
}).json()
session = r["session"]
proxy = session["proxy"]
user_agent = session["userAgent"]
# Step 2: paginate with Single, reusing the same exit and User-Agent.
for sku in ("43", "44", "45"):
p = requests.post(f"{API}/api/single/", headers=H, json={
"method": "GET",
"url": f"https://example.com/product/{sku}",
"proxy": proxy,
"headers": [["User-Agent", user_agent]],
}).json()
print(sku, p["status"])
L'appel Auto coûte ce que son échelle dépense. Chaque appel Single de suivi coûte 2 crédits (Single avec unblocker, par défaut).
Modèle 2 : Le proxy découvre, le navigateur effectue le rendu via la même sortie
Utilisez ceci lorsque la cible doit voir un pays de sortie spécifique et que le contenu final nécessite JavaScript.
# Step 1: pick a country-scoped exit with Proxy.
curl -X POST https://eu.api.foura.ai/api/proxy/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"maxTries": 5,
"exitCountries": ["FR", "GB"],
"request": {"method": "GET", "url": "https://example.com/pricing"}
}'
# Response includes: "proxy": "A1B2C3", "exitCountry": "FR"
# Step 2: render the JS-heavy page through THAT exit.
curl -X POST https://eu.api.foura.ai/api/browser/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/pricing",
"proxy": "A1B2C3",
"timeout_ms": 20000
}'
N'appelez pas /api/proxy/ à nouveau pour actualiser la sélection. Un nouvel appel peut choisir une sortie différente et annuler l'intérêt de l'épinglage. Si la sortie épinglée cesse de fonctionner, exécutez un nouvel appel /api/proxy/ pour en choisir une nouvelle, puis continuez avec celle-ci.
Modèle 3 : Ignorer une sortie grillée
Si une sortie qui fonctionnait commence à renvoyer des blocages ou des CAPTCHA, indiquez à FourA de l'éviter lors de la prochaine sélection.
{
"maxTries": 5,
"ignoreProxies": ["A1B2C3"],
"request": { "method": "GET", "url": "https://example.com/data" }
}
ignoreProxies accepte une liste d'ID de proxy provenant de réponses antérieures. Cela fonctionne sur /api/proxy/ et /api/auto/. La liste est respectée à chaque nouvelle tentative interne, de sorte qu'un appel unique avec ignoreProxies ne sélectionne jamais les sorties brûlées.
Durée de vie d'une session épinglée
La sortie elle-même vit tant que le proxy sous-jacent est sain, généralement de quelques minutes à quelques heures. Si une relecture commence à renvoyer des défis, des blocages ou des redirections inattendues, la sortie a probablement été changée ou la cible a actualisé son autorisation.
Deux options s'offrent à vous lorsque cela se produit :
- Nouvel appel
/api/auto/pour la même URL. Auto découvrira une nouvelle session de travail, abandonnez les anciens ID. - Nouvel appel
/api/proxy/avecignoreProxies: ["<burned-id>"]si vous souhaitez continuer à épingler manuellement.
Les cookies de session d'une réponse Auto expirent également selon le propre calendrier de la cible. Certains sites lient l'autorisation pendant des heures, d'autres pendant des minutes. Traitez la session comme un cache, pas comme un token durable.
Erreurs courantes
- Réutilisation d'un ID de proxy entre les comptes. Les ID de proxy sont des identifiants par réponse. Transférer un ID d'une clé API à une autre ne garantit pas la résolution vers la même sortie.
- Tentative de décodage de l'ID. La chaîne base36 est opaque. Ne l'analysez pas, ne supprimez pas de caractères, ne la mettez pas en minuscules. Renvoyez-la telle quelle.
- Épingler via une sortie avec un rate limit. Si la cible applique un rate limit par IP, canaliser de nombreuses requêtes via une seule sortie déclenchera des blocages plus rapidement. Pour les charges de travail à volume élevé, laissez Auto ou Proxy effectuer une rotation entre de nombreuses sorties et n'épinglez que lorsque la cible l'exige vraiment.
- Ignorer
exitCountrieslors du suivi. Si vous épinglez une sortie délimitée et appelez de nouveau Proxy sansexitCountries, le suivi peut aboutir dans un autre pays. Conservez la portée sur chaque appel qui en a besoin.
En relation
- API Endpoints : Référence complète des paramètres et des réponses
- Smart Fetch (Auto) : Comment Auto construit la session que vous rejouez
- Handling Anti-Bot Protection : Quand l'épinglage aide et quand la rotation est préférable
- Common Issues :
no_eligible_proxyet autres erreurs de proxy