Scarnox · Blog

Le fingerprinting du navigateur expliqué pour les scrapers

Le fingerprinting du navigateur consiste à identifier un visiteur à partir de l'ensemble des caractéristiques de son navigateur, et non à l'aide d'un cookie ou d'un compte. Les sites l'utilisent pour repérer les visiteurs qui reviennent, détecter la fraude et reconnaître l'automatisation. Si vous scrapez le web, vous le rencontrerez. Ce guide explique ce qui est mesuré, pourquoi une seule incohérence pose problème, et comment garder un profil unique, cohérent et bien élevé pour collecter des données publiques. Il explique aussi les limites de ce que l'ajustement d'empreinte peut faire, et de ce qu'il ne doit pas faire.

De quoi est faite une empreinte

Aucune valeur isolée n'identifie un navigateur, mais plusieurs petites valeurs combinées le font souvent. Les entrées courantes incluent :

Les scripts de fingerprinting combinent ces éléments en un hash ou un score. Plus il y a de signaux stables et inhabituels, plus le résultat est identifiant.

Pourquoi une incohérence se remarque

Un vrai navigateur est cohérent en interne. Son système d'exploitation correspond à ses polices, son fuseau horaire correspond à son réglage de langue, et la taille de son écran correspond à l'appareil sur lequel il tourne. Les scrapers brisent souvent cette cohérence sans le vouloir :

Chaque incohérence est un petit signal. Ensemble, elles peuvent faire passer une requête de « visiteur ordinaire » à « mérite un examen plus attentif ».

Étape 1 : mesurez votre propre configuration

Vous pouvez voir ce qu'une page apprend de votre client en chargeant une page de test de fingerprinting que vous contrôlez, ou une page de diagnostic que vous exécutez en local. Regardez les valeurs et demandez-vous si elles décrivent une machine cohérente. Voici un exemple Playwright minimal qui en affiche quelques-unes :

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context(locale="en-GB", timezone_id="Europe/London")
    page = context.new_page()
    page.goto("https://example.com")  # remplacez par une page que vous possédez
    print(page.evaluate("""() => ({
        language: navigator.language,
        timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
        platform: navigator.platform,
        viewport: [innerWidth, innerHeight]
    })"""))
    browser.close()

Étape 2 : gardez une seule identité par profil

L'habitude la plus utile consiste à traiter chaque identité de scraping comme un profil unique. Donnez-lui un seul ensemble de caractéristiques et conservez-les pendant toute sa durée de vie :

Modifier l'une de ces caractéristiques à chaque requête est plus suspect que de les garder stables. La cohérence est ce qui rend un profil ordinaire.

Étape 3 : rythmez le profil comme un visiteur

Le fingerprinting n'est qu'une des entrées. Les sites surveillent aussi la vitesse à laquelle un profil parcourt le site. Un profil qui charge deux cents pages produit en une minute n'est pas un humain, quelle que soit son empreinte. Espacez les requêtes, mettez les résultats en cache, et arrêtez-vous lorsqu'une page indique qu'il faut le faire. La liste de bonnes pratiques pour scraper sans se faire bloquer couvre le rythme plus en détail.

Étape 4 : connaissez les limites

L'ajustement d'empreinte ne peut pas faire ressembler un profil automatisé à une personne qui n'est pas là. Les sites qui s'appuient sur le fingerprinting le combinent généralement avec des limites de débit, des contrôles de compte et, parfois, un captcha. Lorsqu'un captcha apparaît, il vous faut un token fourni par un solveur, et non davantage de retouches d'empreinte. Le type de captcha disponible chez Scarnox aujourd'hui est PopularCaptcha ; le guide Python PopularCaptcha montre la requête. Pour une vue plus large des widgets existants, lisez les types de captcha expliqués.

Plus important encore, l'évasion par le fingerprinting n'est pas une autorisation d'ignorer les règles d'un site. Si le propriétaire a restreint l'accès automatisé, la bonne décision est de s'arrêter, pas de rendre votre profil plus difficile à repérer. Le fingerprinting est aussi une question de vie privée. Certains sites l'utilisent pour suivre des personnes d'une visite à l'autre, et c'est une raison de plus de ne collecter que ce dont votre projet a besoin.

Scrapez de manière responsable

Où aller ensuite

Si votre cible se trouve derrière une vérification au niveau du navigateur, commencez par la détection des navigateurs headless, qui couvre les signaux propres aux navigateurs automatisés. Les pages qui ont besoin de JavaScript pour afficher leur contenu sont traitées dans le scraping des sites JavaScript.

Démarrez avec un crédit d'essai gratuit, sans carte bancaire : créez un compte et testez le flux PopularCaptcha sur une page que vous possédez. Pour les tarifs actuels, consultez la page tarifs.

Étapes suivantes