Retour au blog

Gestion de session pour le scraping et l'automatisation : comment conserver une session pendant plus de 12 heures

Guide complet pour configurer des sessions durables pour le scraping, le farming de comptes et l'automatisation : choix de proxy, configuration des navigateurs, résolution des problèmes de déconnexion.

📅10 février 2026
```html

Si vous lancez le scraping de marketplaces la nuit, que vous farmez des comptes Facebook Ads pendant 8 heures ou que vous automatisez des publications massives sur Instagram, vous avez rencontré le problème des déconnexions de session. Le proxy change d'IP, le navigateur perd les cookies, le script plante au bout de trois heures de fonctionnement. Dans ce guide, nous allons examiner comment configurer des sessions stables et durables pour des tâches qui fonctionnent pendant plusieurs heures à une journée sans interruption.

Qu'est-ce que la gestion des sessions et pourquoi est-elle nécessaire

La gestion des sessions est la gestion de l'état de la connexion entre votre outil (navigateur, script, bot) et le service cible pendant une longue période. Pour des tâches courtes, comme le scraping de 100 produits en 5 minutes, ce n'est pas critique. Mais si la tâche dure plusieurs heures, il est important de conserver :

  • La même adresse IP — pour que le site ne soupçonne pas un changement d'appareil
  • Cookies et localStorage — pour l'authentification et le suivi des actions
  • Fingerprint du navigateur — ensemble de caractéristiques de l'appareil (User-Agent, résolution d'écran, WebGL)
  • État du script — quelles pages ont été traitées, où s'est-il arrêté en cas d'erreur

Si au moins un paramètre change pendant le processus, le site peut bloquer le compte, interrompre le scraping des CAPTCHA ou réinitialiser la session d'authentification.

Exemples typiques de tâches longues : farming de comptes Facebook Ads (6-12 heures de réchauffement), scraping de tous les produits d'une catégorie sur Wildberries (3-8 heures), publication massive sur 50 comptes Instagram (4-10 heures avec des délais), surveillance des prix des concurrents 24/7.

Problèmes typiques lors de longues sessions

Examinons ce qui casse le plus souvent les sessions durables et entraîne l'arrêt de la tâche :

1. Rotation de l'adresse IP du proxy

De nombreux services de proxy changent par défaut d'IP toutes les 5 à 15 minutes. Pour le scraping sans authentification, cela est acceptable, mais si vous êtes connecté à un compte Facebook Ads, un changement d'IP de Moscou à Saint-Pétersbourg au milieu de la session suscitera des soupçons. La plateforme demandera une confirmation de connexion, enverra un code sur votre téléphone ou bloquera complètement le compte pour activité suspecte.

Solution : utiliser des sticky sessions (sessions collantes) — un mode où le proxy attribue la même IP pendant 10 minutes, 1 heure ou 24 heures. Plus de détails à ce sujet dans la section ci-dessous.

2. Timeout de connexion côté proxy

Certains fournisseurs de proxy interrompent la connexion s'il n'y a pas d'activité pendant 10 à 30 minutes. Si votre script fait une pause entre les actions (par exemple, imitant un humain — 5 minutes à lire un produit, puis passe au suivant), le proxy peut fermer la connexion. Lors de la reprise du travail, le script obtiendra une erreur et échouera.

Solution : configurer des requêtes keep-alive (ping du proxy toutes les 2-3 minutes) ou choisir un fournisseur sans délais stricts. Les proxies résidentiels et mobiles maintiennent généralement la connexion plus longtemps que les centres de données.

3. Changement de fingerprint du navigateur

Si vous redémarrez le navigateur anti-détection ou si le script crée une nouvelle instance du navigateur, le fingerprint change. Même avec la même IP, le site verra que le User-Agent, la résolution d'écran, la liste des polices ou le fingerprint canvas diffèrent de la session précédente. Cela déclenche les systèmes anti-fraude.

Solution : conserver le profil du navigateur (dans Dolphin Anty, AdsPower, Multilogin, cela se fait automatiquement) et ne pas en créer un nouveau à chaque lancement. Si vous utilisez Selenium ou Puppeteer, conservez le User Data Directory avec les cookies et les paramètres.

4. Perte de l'état du script en cas d'erreur

Le script a scrappé pendant 6 heures, a traité 8000 produits sur 10000, et a échoué à cause d'une erreur réseau. Si vous ne sauvegardez pas le progrès, vous devrez recommencer à zéro. Cela est particulièrement critique pour des tâches de 12 heures ou plus.

Solution : sauvegarder les résultats intermédiaires dans une base de données ou un fichier toutes les N itérations (par exemple, tous les 100 produits). Lors du redémarrage, le script continuera à partir de la dernière position sauvegardée.

Quels proxies conviennent aux tâches longues

Tous les types de proxies ne sont pas également bons pour les longues sessions. Voici une comparaison selon les critères de stabilité et de durée de vie de l'IP :

Type de proxy Durée de vie de l'IP Stabilité Convient pour
Centres de données Illimité (IP statique) Élevée, mais facilement détectable Scraping sans authentification, surveillance des prix
Résidentiels 10 min — 24 heures (sticky sessions) Moyenne (dépend du fournisseur) Farming de comptes, scraping avec authentification
Mobiles 5-30 minutes (changement par minuteur de l'opérateur) Faible (changements fréquents d'IP) Tâches courtes sur les réseaux sociaux, contournement de blocages stricts
Proxies ISP Illimité (IP résidentielle statique) Très élevée Longues tâches avec authentification, farming de comptes premium

Recommandations pour le choix :

  • Pour le scraping de marketplaces sans authentification (Wildberries, Ozon, Yandex.Market) — les centres de données avec IP statique conviennent. Ils sont bon marché, rapides, et si le site ne bloque pas strictement les centres de données, ils peuvent gérer une tâche de 12 heures ou plus.
  • Pour le farming de comptes Facebook Ads, TikTok Ads, Google Ads — uniquement des proxies résidentiels ou ISP avec sticky sessions de 24 heures. Les mobiles ne conviennent pas en raison du changement fréquent d'IP.
  • Pour l'automatisation d'Instagram, TikTok — résidentiels avec sticky sessions de 1 à 6 heures. Si la tâche est courte (publication sur 10 comptes en une heure) — les mobiles conviennent également.
  • Pour la surveillance 24/7 (suivi des prix des concurrents, scraping de nouvelles) — proxies ISP ou centres de données, si le site ne les bloque pas.

Important : Les proxies mobiles NE conviennent PAS aux tâches longues ! L'IP change toutes les 5-30 minutes par minuteur de l'opérateur mobile, et vous ne pouvez pas le contrôler. Utilisez-les uniquement pour des tâches courtes (création de compte, publication unique, contournement de CAPTCHA).

Sticky sessions : comment fixer l'IP pendant 24 heures

Les sticky sessions (sessions collantes) sont un mode de fonctionnement des proxies où vous obtenez la même adresse IP pendant une durée déterminée : 10 minutes, 1 heure, 6 heures ou 24 heures. Cela est critique pour les tâches avec authentification.

Comment fonctionnent les sticky sessions

En général, les sticky sessions sont mises en œuvre via un ID de session dans l'URL du proxy. Au lieu du format standard :

http://username:password@proxy.example.com:8000

Vous ajoutez le paramètre session :

http://username-session-mysession123:password@proxy.example.com:8000

Maintenant, toutes les requêtes avec l'identifiant mysession123 passeront par la même IP, jusqu'à ce que la durée de vie de la session expire (généralement 10-30 minutes par défaut). Si une session plus longue est nécessaire, le fournisseur peut proposer un paramètre de durée :

http://username-session-mysession123-lifetime-1440:password@proxy.example.com:8000

lifetime-1440 signifie 1440 minutes (24 heures).

Configuration des sticky sessions dans des services populaires

Dans les proxies résidentiels : la plupart des fournisseurs prennent en charge les sticky sessions via des paramètres dans le nom d'utilisateur. Vérifiez le format dans la documentation de votre fournisseur. Options typiques :

  • username-session-ABC123 — fixe l'IP pour la durée par défaut (10-30 minutes)
  • username-session-ABC123-sessionduration-60 — fixe pour 60 minutes
  • username-country-us-session-ABC123 — IP des États-Unis avec fixation

Dans les proxies ISP : généralement, l'IP est statique par défaut, les sticky sessions ne sont pas nécessaires — vous obtenez toujours la même adresse, sauf si vous changez de proxy manuellement.

Dans les centres de données : l'IP est statique, aucune configuration supplémentaire n'est nécessaire.

Exemple d'utilisation dans un navigateur anti-détection

Supposons que vous farmez un compte Facebook Ads dans Dolphin Anty. La tâche — 8 heures de réchauffement (navigation sur des sites, visionnage de vidéos, likes). Configuration :

  1. Ouvrez le profil du navigateur dans Dolphin Anty
  2. Allez dans la section "Proxies"
  3. Sélectionnez le type : HTTP ou SOCKS5
  4. Entrez l'hôte et le port du proxy
  5. Dans le champ "Login", indiquez : username-session-farm001-sessionduration-480 (480 minutes = 8 heures)
  6. Entrez le mot de passe
  7. Cliquez sur "Vérifier le proxy" — assurez-vous que l'IP est détectée
  8. Sauvegardez le profil

Maintenant, pendant 8 heures, toutes les requêtes de ce profil passeront par une seule IP. Même si vous fermez le navigateur et le rouvrez une heure plus tard, en utilisant le même ID de session (farm001), vous obtiendrez la même IP.

Conseil : Utilisez des IDs de session clairs, liés à la tâche. Par exemple, farm-fb-account-001, parse-wb-electronics. Cela facilitera le débogage si vous avez des dizaines de tâches parallèles.

Configuration des navigateurs anti-détection pour de longues sessions

Les navigateurs anti-détection (Dolphin Anty, AdsPower, Multilogin, GoLogin, Octo Browser) sont conçus spécifiquement pour des sessions durables avec conservation du fingerprint. Mais il y a des nuances de configuration qui sont critiques pour des tâches de 8 heures ou plus.

1. Sauvegarde du profil du navigateur

Le profil du navigateur est un ensemble de cookies, localStorage, fingerprint (User-Agent, canvas, WebGL, polices). Tous les navigateurs anti-détection sauvegardent les profils automatiquement lors de la fermeture. L'essentiel est de ne pas créer un nouveau profil à chaque lancement de tâche !

Approche correcte :

  • Créez un profil une fois pour une tâche spécifique (par exemple, "Farming FB compte #1")
  • Configurez le proxy avec une session collante
  • Effectuez le premier lancement, connectez-vous au compte
  • Fermez le navigateur — le profil sera sauvegardé
  • Lors du prochain lancement, ouvrez le MÊME profil — l'authentification et le fingerprint seront conservés

Approche incorrecte :

  • Créer un nouveau profil chaque jour pour la même tâche
  • Supprimer manuellement les cookies entre les lancements
  • Changer le fingerprint (User-Agent, résolution d'écran) au milieu de la tâche

2. Configuration du fingerprint pour la stabilité

Pour des tâches longues, choisissez un fingerprint RÉALISTE qui correspond au proxy. Si le proxy est en Russie (Moscou) — ne mettez pas un User-Agent d'un MacBook Pro avec une locale anglaise. Mieux vaut :

  • OS : Windows 10 ou 11 (les plus populaires en Russie)
  • Navigateurs : Chrome dernière version (se met à jour automatiquement dans l'anti-détection)
  • Résolution d'écran : 1920x1080 (la plus répandue)
  • Langue : ru-RU, fuseau horaire : Europe/Moscou
  • WebRTC : désactiver ou remplacer par l'IP du proxy (pour ne pas laisser fuiter l'IP réelle)

Dans Dolphin Anty et AdsPower, il existe une fonction "Créer un fingerprint aléatoire" — elle génère une combinaison de paramètres plausible. Pour des tâches longues, c'est plus sûr que de configurer manuellement.

3. Désactivation des mises à jour automatiques et des redémarrages

Si la tâche fonctionne pendant 12 heures, assurez-vous que :

  • L'ordinateur ne passe pas en mode veille (désactivez-le dans les paramètres d'alimentation Windows/macOS)
  • L'antivirus ne redémarre pas le système pour une mise à jour (reportez les mises à jour)
  • Le navigateur anti-détection ne se met pas à jour automatiquement au milieu de la tâche (dans les paramètres, désactivez la mise à jour automatique ou configurez-la pour la nuit)

4. Utilisation de l'API des navigateurs anti-détection pour l'automatisation

Dolphin Anty, AdsPower, Multilogin fournissent une API pour gérer les profils depuis des scripts. Cela permet de :

  • Lancer un profil de navigateur depuis un script Python/Node.js
  • Se connecter via Selenium ou Puppeteer
  • Exécuter une tâche longue
  • Fermer le profil automatiquement à la fin

Exemple de lancement d'un profil Dolphin Anty via l'API (Python) :

import requests
from selenium import webdriver

# Lancement du profil via l'API Dolphin Anty
profile_id = "123456"
response = requests.get(f"http://localhost:3001/v1.0/browser_profiles/{profile_id}/start")
data = response.json()

# Connexion de Selenium au navigateur lancé
options = webdriver.ChromeOptions()
options.debugger_address = data['automation']['port']
driver = webdriver.Chrome(options=options)

# Exécution de la tâche
driver.get("https://example.com")
# ... votre code de scraping ou d'automatisation ...

# Fermeture du profil
requests.get(f"http://localhost:3001/v1.0/browser_profiles/{profile_id}/stop")

Cette approche garantit que le fingerprint et les cookies seront conservés, même si le script échoue — lors du redémarrage, vous vous connecterez au même profil.

Automatisation et sauvegarde de l'état

Pour des tâches de 8 heures ou plus, il est crucial de sauvegarder le progrès afin de ne pas recommencer à zéro en cas d'erreur. Examinons les méthodes pour différents outils.

1. Sauvegarde du progrès dans une base de données

Si vous scrapez 10000 produits de Wildberries, sauvegardez les résultats dans SQLite, PostgreSQL ou MongoDB après chaque 50-100 produits. Structure de la table :

CREATE TABLE parsing_progress (
  id INTEGER PRIMARY KEY,
  url TEXT,
  status TEXT,  -- 'pending', 'completed', 'error'
  data TEXT,    -- JSON avec les résultats
  created_at TIMESTAMP
);

Lors du lancement, le script vérifie quels URL n'ont pas encore été traités (status = 'pending') et continue à partir de là. Si le script échoue, lors du redémarrage, il ignorera les produits déjà traités.

2. Utilisation de systèmes de files d'attente de tâches

Pour des tâches complexes (par exemple, farming de 50 comptes Facebook Ads en parallèle), utilisez des systèmes de files d'attente : Celery (Python), Bull (Node.js), RabbitMQ. Principe :

  • Créez une liste de tâches (50 comptes)
  • Chaque tâche est indépendante (son propre profil de navigateur, son propre proxy)
  • Les workers prennent des tâches dans la file et les exécutent
  • Si un worker échoue, la tâche revient dans la file et est prise par un autre worker

Cela garantit qu'aucune tâche ne sera perdue, même si une partie des processus échoue.

3. Journalisation et surveillance

Pour des tâches de 12 heures ou plus, configurez une journalisation détaillée :

  • Enregistrez dans le journal chaque action (page ouverte, bouton cliqué, données obtenues)
  • Conservez des captures d'écran en cas d'erreurs (dans Selenium : driver.save_screenshot('error.png'))
  • Utilisez des niveaux de logs : INFO pour les actions normales, WARNING pour les situations suspectes (CAPTCHA, chargement lent), ERROR pour les échecs

Exemple de configuration de la journalisation en Python :

import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s',
    handlers=[
        logging.FileHandler('parsing.log'),
        logging.StreamHandler()
    ]
)

logger = logging.getLogger(__name__)

# Dans le code
logger.info(f"Produit traité {product_id}")
logger.warning(f"Chargement lent de la page : {url}")
logger.error(f"Erreur de parsing : {error}")

Surveillance et récupération après déconnexion

Même avec la bonne configuration du proxy et du navigateur, la session peut se déconnecter : le réseau tombe, le proxy redémarre, le site affiche un CAPTCHA. Il est important de détecter rapidement le problème et de rétablir le fonctionnement.

1. Vérification de la disponibilité du proxy

Avant de commencer la tâche et périodiquement (toutes les 30-60 minutes), vérifiez que le proxy fonctionne :

import requests

def check_proxy(proxy_url):
    try:
        response = requests.get(
            'https://api.ipify.org?format=json',
            proxies={'http': proxy_url, 'https': proxy_url},
            timeout=10
        )
        if response.status_code == 200:
            ip = response.json()['ip']
            logger.info(f"Le proxy fonctionne, IP : {ip}")
            return True
    except Exception as e:
        logger.error(f"Le proxy ne répond pas : {e}")
        return False

# Vérification avant de commencer
if not check_proxy(proxy_url):
    logger.error("Le proxy est inaccessible, arrêt de la tâche")
    exit(1)

2. Gestion des CAPTCHA et des blocages

Si le site affiche un CAPTCHA (Google reCAPTCHA, hCaptcha, Cloudflare Turnstile) — la tâche s'arrête. Options de solution :

  • Résolution automatique des CAPTCHA : intégration avec des services comme 2Captcha, Anti-Captcha, CapMonster. Ils résolvent le CAPTCHA en 10-30 secondes, le script continue de fonctionner.
  • Changement de proxy : si le CAPTCHA est apparu à cause d'une IP suspecte — passez à un autre proxy du pool et continuez.
  • Pause et répétition : parfois, le CAPTCHA apparaît à cause d'actions trop rapides. Faites une pause de 2-5 minutes, puis répétez la requête.

3. Redémarrage automatique en cas d'échec

Enveloppez le code principal dans un try-except et redémarrez la tâche en cas d'erreur :

import time

max_retries = 3
retry_delay = 60  # secondes

for attempt in range(max_retries):
    try:
        # Code principal de la tâche
        run_parsing()
        break  # Si réussi, sortez de la boucle
    except Exception as e:
        logger.error(f"Erreur lors de la tentative {attempt + 1} : {e}")
        if attempt < max_retries - 1:
            logger.info(f"Redémarrage dans {retry_delay} secondes...")
            time.sleep(retry_delay)
        else:
            logger.error("Nombre de tentatives dépassé, arrêt")
            raise

4. Notifications de problèmes

Pour les tâches qui fonctionnent la nuit ou le week-end, configurez des notifications en cas d'erreurs critiques :

  • Bot Telegram : envoie un message en cas d'erreur (via la bibliothèque python-telegram-bot)
  • Email : via SMTP (bibliothèque smtplib en Python)
  • SMS : via Twilio ou des services similaires

Exemple d'envoi d'une notification dans Telegram :

import requests

def send_telegram_alert(message):
    bot_token = "VOTRE_TOKEN_BOT"
    chat_id = "VOTRE_CHAT_ID"
    url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
    requests.post(url, data={'chat_id': chat_id, 'text': message})

# En cas d'erreur
try:
    run_parsing()
except Exception as e:
    send_telegram_alert(f"⚠️ Erreur de parsing : {e}")

Scénarios pratiques d'utilisation

Examinons des tâches spécifiques et la configuration optimale de la gestion des sessions pour chacune.

Scénario 1 : Farming de compte Facebook Ads (8 heures de réchauffement)

Tâche : Réchauffer un nouveau compte Facebook Ads avant de lancer des publicités. Il faut imiter le comportement d'un utilisateur ordinaire : se connecter à Facebook, lire le fil d'actualité, regarder des vidéos, aimer des publications, cliquer sur des publicités. Au total, 8 heures d'activité avec des pauses.

Configuration :

  • Proxy : Résidentiel avec sticky session de 8-12 heures, pays — le même que celui indiqué dans le compte (si le compte est aux États-Unis — proxy des États-Unis)
  • Navigateurs : Dolphin Anty ou AdsPower, créer un profil séparé pour ce compte
  • Fingerprint : Réaliste pour le pays (Windows 10, Chrome, résolution 1920x1080, langue en-US pour les États-Unis)
  • Automatisation : Script sur Selenium avec des délais aléatoires (5-15 minutes entre les actions), imitation du défilement et des mouvements de souris
  • Sauvegarde du progrès : Journalisation de toutes les actions dans un fichier, afin de continuer à partir de la dernière en cas d'échec

Risques : Changement d'IP au milieu de la session — Facebook demandera une confirmation de connexion. Actions trop rapides — le compte sera suspecté.

Scénario 2 : Scraping de tous les produits d'une catégorie sur Wildberries (6 heures)

Tâche : Scraper tous les produits de la catégorie "Électronique" sur Wildberries (environ 50000 produits). Il faut obtenir le nom, le prix, la note, le nombre d'avis. Le scraping se fait sans authentification.

Configuration :

  • Proxy : Centre de données avec IP statique (Wildberries ne bloque généralement pas strictement les centres de données) ou résidentiel avec sticky session de 6 heures ou plus
  • Navigateurs : Pas obligatoire, vous pouvez utiliser requests + BeautifulSoup (plus rapide) ou Selenium (si le site est en JavaScript)
  • Sauvegarde du progrès : Base de données SQLite, sauvegarder tous les 100 produits. Lors du redémarrage, ignorer ceux déjà traités.
  • Gestion des erreurs : Si un produit ne se charge pas (404, timeout) — ignorer et continuer, enregistrer dans le journal

Risques : Wildberries peut afficher un CAPTCHA en cas de requêtes trop fréquentes. Solution — ajouter un délai de 1 à 3 secondes entre les produits ou utiliser un pool de proxies avec rotation.

Scénario 3 : Publication massive sur 30 comptes Instagram (5 heures)

Tâche : Publier le même post sur 30 comptes Instagram de clients. Pour chaque compte — son propre texte et hashtags. Il faut le faire avec des délais pour ne pas paraître comme du spam.

Configuration :

  • Proxy : Résidentiels avec sticky session de 1-2 heures, pour chaque compte — son propre proxy (pour que les comptes ne soient pas liés par l'IP)
  • Navigateurs : Dolphin Anty, créer 30 profils (un par compte), chacun avec son propre proxy
  • Automatisation : Script lançant les profils un par un, effectuant la publication via Instagram Web ou API, fermant le profil. Délai entre les comptes — 10-15 minutes.
  • Sauvegarde du progrès : Liste des comptes dans un CSV, marquer le statut (posted/pending/error)

Risques : Instagram peut bloquer le compte pour actions massives. Solution — ajouter des délais aléatoires, imiter le comportement humain (défilement du fil d'actualité avant la publication).

Scénario 4 : Surveillance des prix des concurrents sur Ozon 24/7

Tâche : Suivre les prix de 500 produits concurrents sur Ozon chaque heure, enregistrer les changements dans une base de données. La tâche fonctionne en continu.

Configuration :

  • Proxy : Proxy ISP avec IP statique (ne change jamais) ou centre de données
  • Automatisation : Tâche Cron (Linux) ou Planificateur de tâches (Windows), lançant le script chaque heure
  • Sauvegarde des données : PostgreSQL ou MySQL, table avec les champs : product_id, price, timestamp
  • Gestion des erreurs : Si Ozon est inaccessible (erreur 500) — ignorer l'itération, enregistrer dans le journal, répéter dans une heure

Risques : Ozon peut bloquer l'IP en cas de requêtes trop fréquentes. Solution — utiliser un pool de 3-5 proxies avec rotation.

Conclusion

La gestion des sessions pour des tâches longues est une combinaison du bon choix de proxy, de la configuration du navigateur anti-détection et d'une automatisation fiable avec sauvegarde du progrès. Points clés :

  • Pour les tâches avec authentification (farming de comptes, travail avec des tableaux de bord publicitaires), utilisez des proxies résidentiels ou ISP avec sticky sessions de 6 à 24 heures
  • Pour le scraping sans authentification, les centres de données avec IP statique conviennent — ils sont moins chers et plus rapides
  • Les proxies mobiles NE conviennent PAS aux tâches longues en raison du changement fréquent d'IP
  • Conservez le profil du navigateur et ne changez pas le fingerprint au milieu de la tâche
  • Assurez-vous de journaliser le progrès et de configurer un redémarrage automatique en cas d'échecs
  • Pour des tâches critiques, configurez des notifications en cas de problèmes (Telegram, email)

Si vous prévoyez de lancer des tâches de 8 heures ou plus avec authentification (farming de comptes, automatisation des réseaux sociaux, travail avec des tableaux de bord publicitaires), nous vous recommandons d'essayer des proxies résidentiels avec support des sticky sessions — ils garantissent une IP stable tout au long de la session et un risque minimal de blocages. Pour le scraping de marketplaces et la surveillance des prix sans authentification, des proxies de centres de données conviendront — ils sont plus rapides et moins chers tout en offrant la même stabilité de connexion.

```