XPath : 4 raccourcis que tu utilises sans même le savoir
Table des matières
Cette semaine, je suis tombé sur une excellente présentation de Jonathan Moore au Brighton SEO à propos de XPath : The Xpath To Discovery.
Des rappels sur les fondamentaux, des astuces, des cas d'usage avec Screaming Frog... je te conseille vraiment de la lire.
En la parcourant, je me suis souvenu d'un thread concernant XPath que j'avais justement publié sur Twitter il y a quelques mois.
Et je me suis dit que ça pourrait être intéressant de te le partager ici.
Si tu scrapes des données avec XPath, il est fort probable que tu utilises des raccourcis sans même t'en rendre compte.
Voici 4 exemples.
descendant-or-self
Quand tu utilises le double slash //
, en réalité, tu utilises un raccourci pour /descendant-or-self::node()
.
Autrement dit, l'expression //div//h2
, par exemple, équivaut à //div/descendant-or-self::h2
(= je cherche dans le document tous les h2 qui sont les descendants des balises div).
⚠️ //
en début d'expression XPath n'a pas la même signification : c'est un préfixe qui signifie "n'importe où".
child
Admettons que tu souhaites sélectionner les balises li enfants des balises ul.
Logiquement, tu vas utiliser l'expression XPath //ul/li
.
Eh bien en réalité, c'est un raccourci pour //ul/child::li
.
child::
étant l'axe par défaut (l'axe = la relation avec le nœud courant, autrement dit le sens de "lecture").
attribute
Quand tu veux extraire les attributs href des balises a d'une page, tu utilises certainement l'expression //a/@href
.
Ici aussi, il s'agit d'un raccourci pour //a[attribute::href]
.
@
étant l'expression simplifiée de attribute::
.
self
Imaginons que tu cherches à extraire, dans une page, tous les h2 contenant le mot "Comment".
Pour y arriver, tu vas probablement passer par l'expression //h2[contains(., "Comment")]
.
Le point ici renvoie en fait à self::node()
, c'est-à-dire le nœud courant.
Tu pourrais donc tout-à-fait écrire //h2[contains(self::node(), "Comment")]
et parvenir au même résultat.
Et voilà. J'espère que ce petit éclairage autour du langage XPath te sera utile :)
- 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.