Suite à un scraping d’un annuaire, je souhaitais vérifier si l’ensemble des sites internet étaient encore en ligne (fonctionnels). L’idée était que de nombreuses entreprises arrêtent leur activité tous les jours et donc qu’il n’est pas nécessaire de traiter ces lignes pour de la prospection.
Quand une entreprise ferme, elle n’a plus besoin de son site internet et une fois le nom de domaine expiré le site n’est plus accessible.
Vous pouvez facilement faire cela manuellement, il suffit de se rendre sur l’URL que vous avez et voir si le site est encore en ligne. Mais le problème va se poser si vous avez des centaines de ligne à nettoyer.
Voilà pourquoi, j’ai cherché et trouvé une solution gratuite pour vérifier si un site internet et encore accessible.
Pour cela, on va utiliser Google Sheets et créer notre propre formule qui va permettre de vérifier le statut HTTP d’un site. Et en fonction du code HTTP en réponse, nous saurons si le site est encore accessible, fermé ou bien avec une redirection.
Sommaire
Toggle1 – Lister proprement les sites internet à analyser
Dans un premier temps, il faut lister l’ensemble des URL/sites internet que vous souhaitez analyser. Pour cela, il suffit de créer une colonne sur Google Sheets avec l’ensemble des liens à vérifier.
Nous allons maintenant checker les codes de réponse HTTP de chaque lien que vous avez listé sur votre fichier Google Sheets.
Le protocole HTTP permet de nous donner des codes (Status Codes) qui vont correspondre à un statut de la page. En analysant ces codes, nous pouvons trouver les pages en erreurs.
Il existe plusieurs codes HTTP et ces codes permettent de connaître l’état d’une page, voici quelques exemples :
- Code 200 : Il n’y a pas de pages en erreur et la page a bien été chargée
- Code 301 & 302 : le code 301 correspond à une redirection permanente et 302 à une redirection temporaire
- Code 404 : ce code correspond à une page que le serveur n’arrive pas ou plus à trouver
- Code 5XX : les erreurs commençant par 5 sont des erreurs liées au serveur
2 – Créer un script « Apps Script » sur Google Sheets
Passons à la création de notre Apps Script. La première étape est de se rendre dans « Extensions » puis sur « Apps Script » dans votre Google Sheets.
Vous arrivez sur une page comme celle-ci. N’ayez pas peur, si comme moi vous n’êtes pas un maître du code vous allez comprendre que c’est très simple à mettre en place.
Commençons par nommer notre projet, ici j’ai mis « checkwebsite » qui sera également le nom de la nouvelle fonction que nous allons créer pour vérifier si les sites internet fonctionnent encore.
Vous allez ensuite venir copier/coller ce code dans votre Apps Script.
function checkwebsite(url) { var urlRegex = /^(?:(?:https?|ftp):\/\/)?(?:www\.)?[a-z0-9\-]+(?:\.[a-z0-9\-]+)+[^\s]*$/i; if (url == "") { return "Empty cell"; } else if (!urlRegex.test(url)) { return "Not an URL"; } var response; try { response = UrlFetchApp.fetch(url, {muteHttpExceptions: true}); if (response.getResponseCode() == 200) { return "Ok"; } else { return "Error " + response.getResponseCode(); } } catch (error) { return "Error"; } }
Pensez bien à cliquer sur la Disquette pour enregistrer votre projet.
Pour résumer grossièrement un peu le code que vous venez d’ajouter :
- Avec une RegEx, la formule va analyser si le contenu de la cellule est bien une URL (attention il ne faut pas d’espace avant ou après votre URL). Si ce n’est pas le cas un message « Not an URL » sera affiché ;
- Puis elle va vérifier si la cellule n’est pas vide. Si c’est le cas, vous aurez un message « Empty cell »;
- Enfin la formule va utiliser UrlFetchApp qui permet d’envoyer des requêtes HTTP à des URL externes et de récupérer les données de réponse. Et donc le code HTTP vu en première partie ;
Vous pouvez ensuite retourner sur votre feuille Google Sheets avec votre liste de sites internet à analyser.
3 – Vérifier le statut des sites internet sur Google Sheets
Le nom de la fonction que nous venons d’ajouter se nomme « checkwebsite ». De la même manière que les autres fonctions sur Google Sheets (Somme, Moyenne …), il suffit d’ajouter le signe « = » dans votre cellule puis le nom de la fonction.
Saissisez la fonction puis renseignez la ou les cellules qui contiennent les URL que vous souhaitez analyser.
*cela fonctionne aussi si la cellule ne commence pas par https ou www
Voici la vidéo qui vous montre le processus complet de l’utilisation de la fonction.
Voilà vous avez maintenant votre réponse pour chaque site internet. Pour notre exemple, j’avais volontairement construit une liste avec beaucoup de sites internet en erreur pour bien montrer les différentes possibilités qu’apporte cette fonction.
Comme vous le voyez, vous avez les sites en erreurs. Pour prendre le premier de la liste qui est en « Error 403 » qui correspond à un accès interdit. Quand vous vous rendez sur l’URL d’Alcmeon comme sur le fichier Google Sheets, vous avez cette page à l’affichage :
Une erreur 403 signifie que le serveur comprend la requête mais vous en refuse l’accès. En somme le site internet existe mais la page est volontairement bloquée. Et on comprend que la bonne URL n’est pas http://alcmeon.com/3/fr/ mais https://www.alcmeon.com/
Voilà l’importance d’avoir le code HTTP renvoyé cela permet de trier et filtrer plus justement votre liste de site internet, pour la corriger et la nettoyer avant utilisation.
Dernières précisions :
Comme l’indique Google : « Un appel de fonction personnalisé doit être renvoyé dans un délai de 30 secondes. Si ce n’est pas le cas, la cellule affiche une erreur: Internal error executing the custom function
«
Donc si vous avez une très très longue liste à analyser, je vous conseille de commencer par analyser 100 lignes, puis 500 puis plus si vous n’avez pas rencontré d’erreur lors de l’excution de la fonction.
Cette technique permet aussi de vérifier les liens cassés d’un site internet, dès lors que vous avez récupéré les URL de toutes les pages. Cela permet de vérifier en masse le statut de sites internet avec Google Sheets Apps Script (mass URL status checker using Google Sheets Script).
À savoir qu’il existe aussi des sites internet qui permettent d’ajouter votre liste et d’avoir une réponse si vous ne souhaitez pas utiliser d’Apps Script. Exemple : https://www.pemavor.com/solution/http-status-code-checker/
Vous savez désormais vérifier si un site internet ou plus généralement une URL est disponible et fonctionnelle simplement et gratuitement avec Google Sheets.