Illustration de l’extracteur Website ContactsE-mails, téléphones et réseaux sociaux

Extracteur Website Contacts.

Partez de sites d’entreprises. Collectez leurs contacts publics et regroupez les profils par réseau pour aller au-delà d’un nom de domaine.

Lancer sur Apify

Comment utiliser cet extracteur.

Essayez ces exemples pour le marketing, la croissance et l’analyse concurrentielle.

01

Ajoutez les contacts à une sélection de partenaires

Si vous avez étudié des revendeurs possibles, collectez leurs contacts publics. Choisissez le canal adapté à votre demande de partenariat.

Gardez un tableau par domaine avec contacts publiés et liens sociaux.

02

Complétez l’étude d’entreprises d’une agence

Partez de domaines d’une catégorie trouvés avec Google Search. Vérifiez sites et profils, puis étudiez audience et positionnement de chaque entreprise.

Ajoutez les pages sources et vos notes à la liste.

03

Vérifiez les contacts de vos propres sites

Pour plusieurs marques, vérifiez e-mails, téléphones et réseaux de chaque site. Signalez aux responsables les informations manquantes ou liens obsolètes.

Gardez un audit avec les liens des pages vérifiées.

DU PREMIER ESSAI AU FLUX RÉCURRENT

Votre premier essai, pas à pas.

  1. Ouvrez l’Actor sur Apify, choisissez Input et passez à l’éditeur JSON pour coller une configuration.
  2. Collez deux URL vérifiées dans startUrls. Remplacez les exemples par des entreprises de votre liste. Évitez les profils sociaux si vous connaissez déjà le site principal de l’entreprise.
  3. Commencez avec huit pages par site et maxResults 2. Gardez skipSitesWithoutContacts sur false pour voir aussi les sites sans coordonnées. Aucun proxy n’est requis par défaut ; ajoutez-en un si la source le demande.
  4. Lancez l’exécution et consultez le journal. Vérifiez les cibles et filtres retenus avant de conclure qu’aucun résultat n’existe.
  5. Ouvrez Storage → Dataset, vérifiez quelques lignes et exportez en JSON pour les données imbriquées ou en CSV pour un premier examen dans un tableur.
Configuration de départ
{
  "startUrls": ["https://apify.com", "https://www.iana.org"],
  "maxPagesPerSite": 8,
  "maxResults": 2,
  "skipSitesWithoutContacts": false
}

Collez ceci dans l’éditeur JSON de l’Actor. Remplacez les cibles d’exemple avant de lancer.

Voir le formulaire actuel sur Apify

Choisissez votre mode de recherche.

Le scraper visite un site et privilégie les pages susceptibles de contenir des coordonnées publiques. Donnez-lui des URL vérifiées si possible. Les raccourcis par nom d’entreprise peuvent deviner un domaine et demandent une vérification supplémentaire.

Méthode de rechercheQuand l’utiliserCe qui change
Domaines webQuand l’utiliserVous connaissez l’entité exacte à collecter.Ce qui changeLiens ou domaines, en textes ou objets avec url. Chaque site est analysé séparément. Les noms et profils peuvent produire des domaines supposés ; privilégiez les sites vérifiés.
Raccourcis par nom d’entrepriseQuand l’utiliserVous cherchez des résultats pertinents avant de choisir des cibles précises.Ce qui changeUn site en complément ou à la place de startUrls. Un e-mail professionnel peut être lu comme un domaine, mais un site vérifié est plus clair.
Profondeur d’explorationQuand l’utiliserVous souhaitez une couverture plus large et pouvez augmenter la collecte.Ce qui changeDe 1 à 100 pages par site, 8 par défaut. Priorise contact, mentions légales, présentation, équipe et support. Augmentez pour les grands sites, pas pour plus de domaines.

La différence à retenir

Limite les records de sites livrés, pas les e-mails ou pages. Un domaine produit généralement une ligne contenant des listes de contacts. Vide traite toute la liste.

Comparer le scraper associé

Tous les paramètres, expliqués.

Utilisez les noms exacts ci-dessous en JSON. Dans le formulaire Apify, saisissez les éléments des listes séparément et respectez les types numériques et booléens.

Valeur par défaut et préremplissage sont différents. La valeur par défaut s’applique si vous omettez un réglage ; le préremplissage est un exemple déjà saisi dans le formulaire Apify. Vérifiez cibles et limites avant chaque collecte. Certains réglages n’ont pas de valeur par défaut dans le schéma. Indiquez au moins une cible prise en charge.

Cibles et recherches2
startUrls
ListeExemple prérempli : ["https://apify.com","https://www.iana.org"]

Liens ou domaines, en textes ou objets avec url. Chaque site est analysé séparément. Les noms et profils peuvent produire des domaines supposés ; privilégiez les sites vérifiés.

url
Texte

Un site en complément ou à la place de startUrls. Un e-mail professionnel peut être lu comme un domaine, mais un site vérifié est plus clair.

Limites, détails et proxys7
maxPagesPerSite
EntierPar défaut : 8

De 1 à 100 pages par site, 8 par défaut. Priorise contact, mentions légales, présentation, équipe et support. Augmentez pour les grands sites, pas pour plus de domaines.

maxResults
Entier

Limite les records de sites livrés, pas les e-mails ou pages. Un domaine produit généralement une ligne contenant des listes de contacts. Vide traite toute la liste.

skipSitesWithoutContacts
Vrai ou fauxPar défaut : false

true omet les sites lus sans contacts ; false conserve les lignes vides pour vérifier la couverture. Sites inaccessibles ou bloqués sont des échecs distincts, pas une preuve d’absence de contacts.

maxConcurrency
EntierPar défaut : 5

De 1 à 20 sites simultanés, 5 par défaut. Parallélise différents hôtes, pas davantage de pages d’un même site. Gardez la pause par site.

delayMs
EntierPar défaut : 300

Pause en millisecondes entre requêtes d’un même site. N’arrête pas les autres sites parallèles. Le défaut 300 est un bon départ.

requestTimeoutSecs
EntierPar défaut : 20

Attente de 5 à 120 secondes par page, 20 par défaut. Augmentez pour les sites lents ou réduisez pour des listes rapides. Ce n’est pas la durée totale du run.

proxyConfiguration
ObjetPar défaut : {"useApifyProxy":false}

Facultatif pour les sites professionnels publics ; aucun proxy par défaut. Essayez-en un pour de grandes listes ou pages refusées et distinguez les échecs des sites vides.

Réglages avancés et reprise3
resume
Vrai ou fauxPar défaut : true

Sauvegarde la progression environ toutes les 30 secondes pour reprendre après un redémarrage ou une migration Apify. Laissez-le activé.

continueFromLastRun
Vrai ou fauxPar défaut : false

Poursuit le travail inachevé du run précédent avec la même entrée. Les résultats précédents restent dans son dataset. Gardez false pour une collecte nouvelle ou régulière.

impersonate
TextePar défaut : chrome131

Identité du navigateur utilisée pour les requêtes. Gardez la valeur par défaut sauf pour diagnostiquer un blocage immédiat. Elle modifie l’empreinte des requêtes, pas les données demandées.

Cette référence reprend les paramètres de l’Actor. Vérifiez le formulaire actuel avant de modifier un flux de production. Voir le formulaire actuel sur Apify.

Des configurations à copier.

Chaque exemple est une exécution distincte. Commencez petit, vérifiez les résultats, puis élargissez. Adaptez les cibles, pays et dates à votre recherche.

Vérifier une liste d’entreprises confirmées

Collectez les coordonnées publiques de quatre domaines connus, jusqu’à huit pages chacun. Conservez les lignes vides pour contrôler la couverture. Remplacez les exemples par votre liste de recherche avant de lancer.

Vérifier une liste d’entreprises confirmées
{
  "startUrls": [
    "https://apify.com",
    "https://www.iana.org",
    "https://www.python.org",
    "https://www.getdbt.com"
  ],
  "maxPagesPerSite": 8,
  "maxResults": 4,
  "skipSitesWithoutContacts": false
}

Explorer quelques sites plus en profondeur

Augmentez le budget à 20 pages pour deux domaines si les coordonnées sont dispersées. L’Actor privilégie les pages de contact probables ; ce budget reste une exploration limitée, pas toutes les URL du site.

Explorer quelques sites plus en profondeur
{
  "startUrls": ["https://apify.com", "https://www.getdbt.com"],
  "maxPagesPerSite": 20,
  "maxResults": 2,
  "skipSitesWithoutContacts": false,
  "maxConcurrency": 2,
  "delayMs": 500
}

Exporter uniquement les sites avec coordonnées

Mettez skipSitesWithoutContacts sur true pour obtenir une liste avec coordonnées. Vérifiez d’abord une collecte sur false : filtrer les lignes vides simplifie l’export mais masque une partie de la couverture.

Exporter uniquement les sites avec coordonnées
{
  "startUrls": [
    "https://apify.com",
    "https://www.iana.org",
    "https://www.python.org",
    "https://www.getdbt.com"
  ],
  "maxPagesPerSite": 8,
  "maxResults": 4,
  "skipSitesWithoutContacts": true
}

Exécutez, vérifiez, exportez, recommencez.

Attendez-vous à une ligne par site avec des tableaux d’e-mails publics, téléphones et profils sociaux. Des tableaux vides peuvent signaler une absence de coordonnées, un blocage ou du contenu JavaScript non rendu par ce scraper HTTP. Vérifiez logs et pages avant de conclure à l’inaccessibilité. Vérifiez les domaines devinés avant les jointures.

  1. Consultez le dataset et le record SUMMARY. Comparez le total à votre limite, vérifiez les entrées ignorées ou échouées et contrôlez quelques liens sources.
  2. Conservez les identifiants et ajoutez collected_at et run_id à l’enregistrement. Utilisez CSV pour les colonnes simples et JSON pour les listes ou détails imbriqués.
  3. Enregistrez la configuration testée comme Apify Task et programmez-la. Pour des observations régulières, laissez continueFromLastRun à false. Dédupliquez par identifiant en conservant chaque date d’observation.
  4. Dans Make ou n8n, attendez la fin du run, récupérez son dataset et mappez les champs vers Sheets ou votre entrepôt. Alimentez Looker Studio avec une table de reporting et utilisez dbt pour transformer et tester les modèles.
  5. Le même JSON fonctionne avec l’API Actors d’Apify. Dans Claude avec Apify MCP, nommez cet Actor, demandez la lecture du schéma et précisez cibles, marchés et limites avant l’exécution.

Reprendre ne crée pas une nouvelle observation

resume protège le run actuel si Apify le redémarre. continueFromLastRun poursuit un ancien run avec la même configuration ; ses données restent dans son dataset. Réunissez les deux datasets et augmentez une limite déjà atteinte. Relancez de zéro pour observer les changements d’aujourd’hui.

Suivre les guides Sheets, Claude, Looker et BigQuery
Lancer cet Actor par l’API

Enregistrez une configuration ci-dessus dans input.json. Définissez APIFY_TOKEN avec votre jeton Apify dans le terminal, puis envoyez le fichier comme corps de requête.

Démarrer la collecte
curl --fail-with-body --request POST \
  --url "https://api.apify.com/v2/actors/jmlp~web-contact-scraper/runs" \
  --header "Authorization: Bearer $APIFY_TOKEN" \
  --header "Content-Type: application/json" \
  --data-binary @input.json

La réponse contient un identifiant de collecte et defaultDatasetId, pas les résultats finaux. Attendez la réussite, définissez DATASET_ID avec cet identifiant et récupérez les lignes. Pour les gros jeux, utilisez limit et offset pour paginer.

Récupérer les données
curl --fail-with-body \
  --url "https://api.apify.com/v2/datasets/$DATASET_ID/items?format=json" \
  --header "Authorization: Bearer $APIFY_TOKEN"

Référence API de lancement et d’export d’Apify
Options d’export des données

Si les résultats vous surprennent.

Modifiez un réglage à la fois, gardez une petite limite et consultez le résumé avant d’élargir.

Un nom d’entreprise a mené au mauvais site.

Liens ou domaines, en textes ou objets avec url. Chaque site est analysé séparément. Les noms et profils peuvent produire des domaines supposés ; privilégiez les sites vérifiés.

Un site contient des coordonnées, mais le résultat est vide.

Attendez-vous à une ligne par site avec des tableaux d’e-mails publics, téléphones et profils sociaux. Des tableaux vides peuvent signaler une absence de coordonnées, un blocage ou du contenu JavaScript non rendu par ce scraper HTTP. Vérifiez logs et pages avant de conclure à l’inaccessibilité. Vérifiez les domaines devinés avant les jointures.

Certains sites saisis n’apparaissent pas dans le jeu de données.

true omet les sites lus sans contacts ; false conserve les lignes vides pour vérifier la couverture. Sites inaccessibles ou bloqués sont des échecs distincts, pas une preuve d’absence de contacts.

Le run a réussi, mais reste vide

Un succès indique que l’Actor a terminé, pas que la source a fourni des données. Consultez SUMMARY.inputProblem, SUMMARY.problem et le journal : cible manquante, filtre non pris en charge ou requête refusée. Essayez une cible connue avec moins de filtres.

Moins de lignes que prévu

Vérifiez les limites globales, par recherche et par page, la couverture et les doublons. Plusieurs recherches peuvent trouver la même ligne. Le total annoncé par la source peut inclure des données non accessibles publiquement. Vérifiez les tâches inachevées avant de considérer le dataset complet.

Utilisez les résultats dans vos outils.

Google Sheets

Joignez sur domaine normalisé. Placez les tableaux de contacts dans des colonnes dédiées et notez canal préféré, pertinence et sources.

Lire le guide
Claude + MCP

Demandez à Claude de classer les canaux par réseau et signaler ambiguïtés ou absences. Une boîte générale n’identifie pas une personne et une adresse publiée ne prouve pas la délivrabilité.

Lire le guide
Looker Studio

Affichez les domaines avec e-mail, téléphone ou LinkedIn. Gardez les erreurs pour distinguer données absentes et contacts inexistants.

Lire le guide
BigQuery + dbt

Gardez un résultat par domaine et exécution avec date. Utilisez UNNEST pour séparer e-mails, téléphones et profils en tables de jointure, avec sources.

Lire le guide
Copier une consigne pour Claude
Consigne pour Claude + Apify MCP
Vérifie jmlp/web-contact-scraper pour https://apify.com, au maximum huit pages par site. Organise e-mails, téléphones et profils publics, cite les pages et signale erreurs ou canaux absents. Ne prétends pas vérifier la délivrabilité.

Les champs disponibles.

Conservez la date de collecte et les identifiants d’origine pour vérifier la provenance d’un résultat ou le comparer à une exécution ultérieure.

Avant de tirer des conclusions

Il collecte les contacts publiés, sans données privées ni vérification de délivrabilité. Certains sites ne donnent aucun contact. Vérifiez erreurs et sources avant une prise de contact pertinente.

domain / url
Clé de déduplication et adresse finale du site.
emails / phones
Adresses et téléphones publics.
socials / socials_by_network
Profils publics regroupés par réseau.
has_contact
Indique si un contact public a été trouvé.
pages / pages_crawled
Couverture de collecte et pages visitées.
errors
Problèmes de collecte à vérifier.

Questions fréquentes.

Vérifie-t-il la délivrabilité des e-mails ?

Non. Il extrait les adresses publiées. La vérification de délivrabilité est un autre processus.

Puis-je le relier aux résultats Google Search ?

Oui. Validez les sites, normalisez les domaines et utilisez la liste vérifiée. Contrôlez les URL reconstruites avant un autre collecteur.

Source et informations actuelles : Actor Website Contacts de JMLP sur Apify.

D’autres extracteurs
qui pourraient vous être utiles.

Parlons de
votre projet.

Dites-moi ce que vous devez collecter ou comprendre. Je peux vous aider avec un extracteur sur mesure, un pipeline ou l’analyse.

Parlons de votre projet