Un proxy résidentiel rotatif est conçu pour la mise à l’échelle : une nouvelle IP à chaque requête, ou pour une session persistante (sticky) allant jusqu’à 30 minutes. C’est exactement ce qu’il ne faut pas pour un autre type de tâche : rester connecté à un compte toute la journée, maintenir une session de paiement ou de surveillance active pendant des heures, ou gérer le compte vendeur d’une boutique depuis le même endroit à chaque fois. Dans ces cas, le site s’attend à un visiteur cohérent, et une IP qui change ressemble à une session volée.
Les proxies ISP sont faits pour cela. Chacun reste dans la ville et chez le fournisseur d’accès que vous choisissez pendant toute la période de facturation. Mais un bon proxy ne représente que la moitié de la configuration. L’autre moitié consiste à s’assurer que tout le reste de la session reste tout aussi cohérent. Ce guide détaille la configuration que nous recommandons à nos clients, avec du code que vous pouvez adapter.
Quand utiliser un proxy ISP plutôt qu’un proxy rotatif
| Votre tâche | Ce qu’il faut utiliser |
|---|---|
| Collecter de nombreuses pages sur de nombreux sites | Proxies résidentiels rotatifs |
| Un flux en plusieurs étapes qui se termine en moins de 30 minutes | Session persistante résidentielle |
| Une session qui doit durer des heures | Proxy ISP |
| Rester connecté à vos propres comptes jour après jour | Proxy ISP |
| Vérifier l’apparence d’un site depuis une ville et un fournisseur spécifiques | Proxy ISP |
La limite des 30 minutes est le repère pratique. Les sessions persistantes résidentielles sur Shifter durent jusqu’à 30 minutes. Tout ce qui dure plus longtemps, ou tout ce qui revient sur le même compte le lendemain, relève d’un proxy ISP.
Comment fonctionnent les proxies ISP de Shifter
- Chaque IP que vous placez reçoit son propre nom d’utilisateur, et tous les noms d’utilisateur d’un plan partagent un seul mot de passe.
- Chaque proxy se connecte via le même hôte et le même port,
isp.shifter.io:443, en HTTP(S) ou SOCKS5. - Vous choisissez la ville et l’ISP (ASN) pour chaque IP au moment de la placer, parmi 120 pays.
- Chaque proxy conserve cette ville et cet ISP aussi longtemps que le plan est actif.
- L’adresse IP sous-jacente peut se renouveler avec le temps, de la même manière qu’une connexion haut débit résidentielle reçoit de temps en temps une nouvelle adresse de son fournisseur. La ville et le fournisseur, eux, restent les mêmes.
- La bande passante est illimitée : les plans sont tarifés par IP.
Cet avant-dernier point compte pour les connexions persistantes. Votre configuration doit s’attendre à ce que l’adresse change occasionnellement et s’appuyer sur ce qui reste constant : l’emplacement, le fournisseur et le profil du navigateur.
La configuration, en cinq règles
1. Un proxy par compte, jamais partagé. Donnez à chaque compte son propre nom d’utilisateur de proxy ISP et gardez cette association fixe. Deux comptes sur une même IP paraissent liés ; un compte réparti sur plusieurs IP ressemble à un accès depuis des endroits différents.
2. Placez chaque IP là où le compte vit réellement. Si le compte appartient à une boutique de Chicago, placez son IP chez un fournisseur de Chicago. Une connexion depuis la bonne ville et un fournisseur résidentiel ressemble à la routine normale du compte.
3. Conservez un profil de navigateur persistant par compte. Les cookies, le stockage local et les sessions enregistrées sont ce qui vous maintient connecté. Stockez-les dans un répertoire de profil par compte et réutilisez-le à chaque fois. Un navigateur neuf à chaque exécution signifie une nouvelle connexion à chaque exécution, ce qui déclenche justement les demandes de vérification.
4. Faites en sorte que le navigateur corresponde au proxy. Le fuseau horaire et la langue doivent correspondre à l’emplacement du point de sortie. Le plus simple est de demander au point de sortie où il se trouve et de configurer le navigateur à partir de cette réponse. Notre guide sur la correspondance entre géolocalisation, fuseau horaire et paramètres régionaux du proxy couvre la liste complète des signaux.
5. Vérifiez le point de sortie avant de commencer. Confirmez que le proxy se trouve dans la ville attendue et chez le fournisseur attendu avant d’ouvrir le compte. Si ce n’est pas le cas, arrêtez-vous plutôt que de vous connecter depuis le mauvais endroit.
Le code
Le module ci-dessous met en pratique les cinq règles avec Python et Playwright. Il valide la correspondance compte-proxy, vérifie le point de sortie via ip-info.com (notre API gratuite de géolocalisation d’IP), et ouvre un profil de navigateur persistant associé au proxy de ce compte, avec le fuseau horaire récupéré directement depuis le point de sortie.
from pathlib import Path
import requests
ISP_GATEWAY = "isp.shifter.io:443"
def validate_assignments(accounts):
"""One ISP proxy per account, and no proxy shared between accounts."""
problems, seen_accounts, owner = [], set(), {}
for a in accounts:
if a["account"] in seen_accounts:
problems.append(f"{a['account']}: listed twice")
seen_accounts.add(a["account"])
other = owner.setdefault(a["isp_username"], a["account"])
if other != a["account"]:
problems.append(f"{a['isp_username']}: shared by {other} and {a['account']}")
return problems
def check_exit(account, password, get=requests.get):
"""Ask the exit where it is, and compare with where this account belongs."""
proxy = f"http://{account['isp_username']}:{password}@{ISP_GATEWAY}"
info = get("http://ip-info.com/json", proxies={"http": proxy, "https": proxy}, timeout=20).json()
problems = []
if info.get("city") != account["city"]:
problems.append(f"city is {info.get('city')}, expected {account['city']}")
if info.get("asn") != account["asn"]:
problems.append(f"ASN is {info.get('asn')}, expected {account['asn']}")
return {"ip": info.get("ip"), "timezone": info.get("timezone"), "problems": problems}
def browser_options(account, password, exit_info, profile_root):
"""Persistent Chromium profile for one account, pinned to its own ISP proxy."""
return {
"user_data_dir": str(Path(profile_root) / account["account"]),
"proxy": {"server": f"http://{ISP_GATEWAY}",
"username": account["isp_username"], "password": password},
"timezone_id": exit_info["timezone"],
"locale": account["locale"],
"viewport": {"width": 1440, "height": 900},
}
def open_account(playwright, account, password, profile_root="profiles"):
"""Check the exit first; only then open the account's own browser profile."""
exit_info = check_exit(account, password)
if exit_info["problems"]:
raise RuntimeError(f"{account['account']}: " + "; ".join(exit_info["problems"]))
options = browser_options(account, password, exit_info, profile_root)
return playwright.chromium.launch_persistent_context(**options)
Et son utilisation :
import os
from playwright.sync_api import sync_playwright
from isp_sessions import open_account, validate_assignments
ACCOUNTS = [
{"account": "store-us", "isp_username": "us-chicago-illinois-as7922-XXXXX",
"city": "Chicago", "asn": 7922, "locale": "en-US"},
{"account": "store-de", "isp_username": "de-berlin-berlin-as3320-XXXXX",
"city": "Berlin", "asn": 3320, "locale": "de-DE"},
]
password = os.environ["ISP_PASSWORD"]
problems = validate_assignments(ACCOUNTS)
if problems:
raise SystemExit("\n".join(problems))
with sync_playwright() as p:
browser = open_account(p, ACCOUNTS[0], password)
page = browser.pages[0] if browser.pages else browser.new_page()
page.goto("https://example.com/account")
# ... the account's work; cookies and storage persist in profiles/store-us
browser.close()
Remplacez les suffixes XXXXX par les noms d’utilisateur de votre page de plan, qui répertorie chaque nom d’utilisateur avec sa ville et son ISP. Le répertoire de profil, profiles/store-us dans cet exemple, est ce qui maintient le compte connecté entre deux exécutions : sauvegardez-le, et ne pointez jamais deux comptes vers le même.
Nous avons testé la vérification de correspondance, la vérification du point de sortie (contre des réponses enregistrées) et les options du navigateur avec Chromium via Playwright. La vérification du point de sortie nécessite un plan ISP actif pour fonctionner avec de vrais proxies.
Maintenir des sessions actives pendant des heures
- Gardez un rythme régulier et humain. Une personne sur un compte clique, lit et attend. Des rafales de centaines d’actions par minute paraissent automatisées, quelle que soit la qualité du proxy.
- Réutilisez le navigateur ouvert. Gardez un seul navigateur ouvert pendant toute la durée de la session de travail plutôt que de le relancer pour chaque tâche.
- Revérifiez le point de sortie après une longue pause. Si vous reprenez après plusieurs heures, relancez la vérification du point de sortie. Comme l’adresse peut se renouveler, un site peut occasionnellement vous demander de confirmer une connexion ; avec la même ville, le même fournisseur et le même profil, c’est la même expérience que celle d’un utilisateur réel après le redémarrage de son routeur domestique.
- Ne changez pas un compte de proxy pour résoudre un problème. Si un compte est contesté, une ville ou un fournisseur différent aggrave les choses. Corrigez la cause, conservez l’association.
Dépannage
| Symptôme | Cause probable | Solution |
|---|---|---|
407 Proxy Authentication Required | Nom d’utilisateur ou mot de passe incorrect | Copiez à nouveau les identifiants depuis la page de plan ; chaque IP a son propre nom d’utilisateur |
| La vérification du point de sortie indique la mauvaise ville | Le nom d’utilisateur appartient à un placement différent | Vérifiez le nom d’utilisateur par rapport à la liste de la page de plan |
| Déconnecté après chaque exécution | Un nouveau profil de navigateur à chaque fois | Utilisez un répertoire de profil persistant par compte |
| Demandes de vérification répétées | Le fuseau horaire ou la langue ne correspond pas au point de sortie, ou le compte a changé de proxy | Configurez le navigateur à partir de l’emplacement du point de sortie et gardez un proxy par compte |
| Requêtes lentes ou en échec depuis une IP | Un problème avec ce placement | Exécutez la vérification de connectivité de la documentation et contactez le support avec le nom d’utilisateur |
Une remarque sur l’utilisation responsable des comptes
Ces techniques concernent les comptes que vous êtes autorisé à utiliser : vos propres comptes professionnels, les comptes de vos clients avec leur permission, et des comptes de test sur vos propres services. Chaque plateforme a ses propres règles sur l’automatisation et sur le nombre de comptes qu’une personne ou une entreprise peut exploiter. Une configuration cohérente permet d’éviter que du travail légitime soit signalé ; ce n’est pas un moyen de contourner les règles d’une plateforme, et cela ne doit pas être utilisé comme tel.
FAQ
Puis-je utiliser des proxies résidentiels rotatifs pour des sessions longues ?
Seulement jusqu’à un certain point. Les sessions persistantes résidentielles sur Shifter durent jusqu’à 30 minutes. Pour les sessions plus longues, ou pour des connexions auxquelles vous revenez chaque jour, utilisez un proxy ISP, qui conserve sa ville et son ISP pendant toute la période de facturation.
L’adresse IP d’un proxy ISP change-t-elle parfois ?
La ville et l’ISP restent fixes tant que votre plan est actif. L’adresse IP derrière le proxy peut se renouveler avec le temps, comme une connexion haut débit résidentielle. Construisez votre configuration autour de l’emplacement, du fournisseur et d’un profil de navigateur persistant, qui restent constants.
Combien de comptes devraient partager un même proxy ISP ?
Un seul. Donnez à chaque compte son propre proxy afin que chacun ressemble à un foyer distinct et qu’aucun compte ne paraisse lié à un autre.
Ai-je besoin d’un profil de navigateur persistant ?
Pour les connexions, oui. Le profil contient les cookies et le stockage qui vous maintiennent connecté. Sans lui, chaque exécution démarre comme un nouvel appareil et il est bien plus probable qu’une vérification vous soit demandée.
En résumé
Les sessions longues et les connexions persistantes ont besoin de cohérence, pas de rotation. Donnez à chaque compte son propre proxy ISP placé dans la ville réelle du compte, conservez un profil de navigateur persistant par compte, réglez le fuseau horaire et la langue du navigateur à partir du point de sortie, et vérifiez le point de sortie avant chaque démarrage. Avec ces éléments en place, un compte paraît identique chaque jour, ce qui est exactement ce qu’un site vérifie. Notre comparaison des proxies ISP et résidentiels couvre le choix plus large entre les deux.