Extraire les paramètres d'une URL avec Google Sheets
Table des matières
Aujourd'hui, je vais te montrer comment faire pour extraire les noms des paramètres d'URL dans Google Sheets.
Tu es sûrement en train de te dire : OK, très bien, mais pour quoi faire ?
Et bien, en fait, il y a tout un tas d'applications possibles : mieux comprendre comment sont gérées les URLs en phase d'audit, identifier des sources de DUST (Duplicate URL, Same Text) après un crawl, faire un état des lieux des paramètres à conserver/supprimer lors d'une migration, etc.
Petit rappel
Un paramètre d'URL, c'est un couple clé/valeur séparé par un signe égal (=).
Dans une URL, les paramètres apparaissent immédiatement après le point d'interrogation (?) et forment ce qu'on appelle la query string.
Pour séparer chaque paramètre, on utilise l'esperluette (&).
Dans l'exemple ci-dessus, la query string est "a=b&x=y", les noms des paramètres sont "a" et "b" et les valeurs de ces paramètres sont respectivement "x" et "y".
Si tu veux aller plus loin, tu peux lire cet article du blog ahrefs.
1ère étape : trouver la bonne regex
Pour commencer, il faut que je trouve un moyen de nettoyer l'URL des différentes valeurs de paramètres.
L'objectif est le suivant : supprimer toutes les chaînes de caractères commençant par le signe =, suivi de n'importe quel caractère SAUF le symbole &.
Et oui, on l'a vu plus haut, l'esperluette (&) est le séparateur qui fait le lien entre chaque paramètre. Je dois donc conserver ce symbole et la chaîne de caractères qui vient derrière, en m'arrêtant au signe =.
Tu l'auras deviné, le plus simple est de passer par une expression régulière.
La voici : =[^&]+
.
Traduction : je veux trouver toutes les chaînes de caractères qui commencent par le signe =
, suivi de n'importe quel caractère sauf l'esperluette ([^&]
), répété 1 ou plusieurs fois (+
).
En testant avec l'excellent Rubular, c'est validé. L'expression régulière cible bien ce que je veux supprimer.
Maintenant, direction Google Sheets.
2ème étape : supprimer les valeurs de paramètres
Je vais reprendre la regex de l'étape 1 et la passer en paramètre de la fonction REGEXREPLACE.
Cette fonction prend 3 paramètres en entrée :
- le texte à modifier
- la regex (autrement dit le pattern à "matcher")
- le texte de remplacement
Ce qui donnera dans mon cas :
=REGEXREPLACE(A2;"=[^&]+";"")
Toutes les valeurs de paramètres sont bien remplacées par ""
, autrement dit supprimées.
Parfait. On peut passer à la suite.
3ème étape : découper l'URL
Le résultat de l'étape 2 contient encore des éléments dont je n'ai pas besoin : le protocole, le domaine et le chemin d'URL.
Pour m'en débarrasser, je vais simplement découper l'URL à partir du ? et ne garder que la deuxième partie, correspondant à la query string.
Je vais faire appel pour cela à deux fonctions : SPLIT et INDEX.
SPLIT
va me permettre de découper l'URL autour du point d'interrogation.
INDEX
va me permettre de sélectionner la deuxième colonne issue de l'opération précédente.
Nickel. On y est presque.
4ème étape : afficher les noms des paramètres
Pour terminer, je vais afficher les noms de paramètres les uns en dessous des autres.
L'astuce consiste ici à remplacer le caractère & par un retour à la ligne en utilisant à la fois la fonction SUBSTITUTE
et la fonction CHAR
.
La fonction SUBSTITUTE
permet de remplacer, dans une cellule, un morceau de texte par une autre.
La fonction CHAR
, quant à elle, permet de convertir un nombre en caractère selon la table Unicode.
Dans la version décimale de la table des caractères Unicode, la nouvelle ligne est associée au code 10
. J'utiliserai donc CHAR(10)
.
Job done !
Voici la formule finale :
=SUBSTITUTE(INDEX(SPLIT(REGEXREPLACE(A2;"=[^&]+";"");"?");2);"&";CHAR(10))
- Partager sur Twitter
- Partager sur Facebook
- Partager sur LinkedIn
- Partager sur Pinterest
- Partager par E-mail
- Copier le lien
Un Template Google Sheets Offert ! 🎁
Rejoins ma newsletter et reçois une astuce SEO chaque mercredi ! En cadeau, je t'offre un template Google Sheets avec 50 fonctions de scraping prêtes à l'emploi.