Comment extraire les numéros de téléphone d’un site internet ?

cover_extraire_telephone_site_internet
Partager cet article

Dans cet article, je vous propose de découvrir une méthode simple et gratuite pour récupérer automatiquement les numéros de téléphone présents sur page web.

Une méthode que vous pourrez utiliser directement dans Google Sheets et ainsi effectuer cette récupération de numéros de téléphone sur une suite de sites internet que vous aurez listée.

1 – Faire la liste des sites internet qui vous intéressent

Dans un premier temps, vous allez devoir créer un fichier Google Sheets et mettre dans une colonne l’ensemble des pages web dont vous souhaitez récupérer les numéros de téléphone présents sur la page.

liste-site-internet-telephone

Ici je parle bien de page web et non pas de site internet. La méthode que je vais vous présenter permet d’extraire les numéros de téléphone présents sur la page que vous souhaitez analyser et non pas l’ensemble des pages disponibles d’un site.

Ici si vous souhaitez analyser une page d’accueil d’un site et que le numéro de téléphone n’est que sur la page de contact du site, il faudra ajouter la page contact du site et non pas la page d’accueil pour récupérer le numéro de téléphone.

2 – Créer un Apps Script Google Sheets pour extraire les numéros de téléphone

Nous allons maintenant aller dans la partie Apps Script de Google Sheets pour ajouter un script qui va permettre de récupérer l’URL d’une cellule, analyser le code de la page puis récupérer le ou les numéros de téléphone présent sur la page.

Aller dans “Extensions” puis “Apps Script”

Donnez un nom à votre projet puis ajoutez ce code :

function extractphone(url) {
  var response = UrlFetchApp.fetch(url);
  var content = response.getContentText();

  var svgContent = content.replace(/<path[\s\S]*?\/path>/gi, '');

  var phoneRegex = /\b\+?(?:33|0)[1-9](?:[\s.-]*\d{2}){4}\b/g;
  var phoneNumbers = svgContent.match(phoneRegex);
  
  if (phoneNumbers != null) {
    var filteredPhoneNumbers = phoneNumbers.filter(function(phoneNumber) {
      return !/\bd="[\s\S]*?\b\+?(?:33|0)[1-9](?:[\s.-]*\d{2}){4}\b[\s\S]*?"/gi.test(phoneNumber);
    });

    var uniquePhoneNumbers = Array.from(new Set(filteredPhoneNumbers));
    if (uniquePhoneNumbers.length > 0) {
      return uniquePhoneNumbers.join(", ");
    } else {
      return "Not found";
    }
  } else {
    return "Not found";
  }
}

Pensez bien à sauvegarder votre projet en cliquant sur la disquette.

Pour expliquer un peu plus ce script :

Il va récupérer la page présente dans la cellule puis la “convertir” en fichier HTML lisible qui va permettre d’avoir l’ensemble des éléments textuels pour être facile à analyser.

Le script va ensuite exclure les fichiers SVG et ceux commençant par une balise <path>. Les fichiers SVG et les balises <path> peuvent comporter des suites de numéros (coordonnées X et Y, dimensions, couleurs…) et donc potentiellement avoir un format proche d’un numéro FR. Voilà pourquoi nous les excluons.

Enfin nous utilisons une ReGex qui permet d’extraire les numéros commençant par 33 ou 0 suivi de 9 autres chiffres.

L’ensemble de ces précisions permettent d’avoir de très grandes chances d’extraire uniquement les numéros de téléphone au format français présents sur la page. Petite précision, les doublons dans les résultats sont automatiquement supprimés et si aucun numéro de téléphone n’est trouvé, le script affichera « Not found”

3 – Appliquer la formule d’extraction des téléphones sur Google Sheets

Nous pouvons maintenant retourner sur le fichier Google Sheets avec la liste des pages web.

Le nom de notre nouvelle formule Google Sheets est : extractphone

Nous pouvons maintenant l’utiliser sur notre fichier Google Sheets comme n’importe quelles autres formules.

Il suffit uniquement de préciser la cellule à analyser qui contient l’URL ou bien de directement mettre le lien de la page comme variable de la fonction.

formule-google-sheets-script-apps

Et comme vous le voyez vous avez maintenant les numéros de téléphone sont disponibles en résultat.

resultat-formule-google-sheets-numero-telephone

Comme précisé plus haut dans l’article, le script n’est pas parfait car si dans le code source vous avez une suite de 10 numéros, cela sera interprété comme un numéro de téléphone français et donc extrait par le script.

Comme vous pouvez le voir sur la ligne 11 avec le site de « wework » ou le premier résultat n’est pas un numéro de téléphone français mais italien. A l’inverse du second qui en est bien un.

Toutefois cela reste une solution simple et gratuite qui permet d’automatiser la recherche de numéros de téléphone sur des pages web.

Quelques informations supplémentaires :

Cela ne fonctionne pas avec les contenus bloqués ou bien si la page nécessite d’avoir un compte sur la plateforme. Par exemple sur une page Facebook, cela ne fonctionnera pas car la page n’est pas publique.

A noter par contre que cela fonctionne pour les pages de résultats sur Google mais attention à la géolocalisation de la page qui peut faire varier les résultats.

Si vous souhaitez extraire les numéros présents dans des textes que vous avez déjà, vous pouvez utiliser cette méthode : Extraire les numéros de téléphone d’un texte

Antoine Moulard
Antoine Moulard

N'hésitez pas à me contacter si vous avez des remarques ou des questions sur cet article. LinkedIn

Consulter d'autres articles

Vos commentaires

Pour les visiteurs de l'UE, le widget "Commentaires Facebook" ne fonctionnera que pour les visiteurs du site qui se sont connectés à Facebook et ont accepté les cookies.

Si vous souhaitez commenter cet article, je vous invite à vous connecter à votre compte Facebook pour voir apparaître le widget "Commentaires Facebook".

Pour en savoir plus sur moi !

photo-profil-am-cercle

N'hésitez pas à vous abonner 🤙