Comment trouver des éléments par XPath dans Puppeteer ?

Avec Puppeteer, vous pouvez facilement trouver des éléments avec XPath au lieu des sélecteurs CSS en utilisant la fonction page.$x(). Cela est particulièrement utile pour naviguer dans des structures HTML complexes. Voici une manière plus détaillée et plus efficace d’utiliser XPath avec Puppeteer.

Le script suivant montre comment utiliser Puppeteer pour trouver des éléments par XPath et interagir avec eux :

      const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ headless: false });
  const page = await browser.newPage();

  // Ouvrez le site web de Bright Data
  await page.goto('https://brightdata.com');

  // Trouver le premier élément h2 à l'aide de XPath
  const [firstH2] = await page.$x('//h2');
  if (firstH2) {
    const h2Text = await page.evaluate(el => el.textContent, firstH2);
    console.log('First H2 Text:', h2Text);
  } else {
    console.log('Aucun élément H2 trouvé');
}

// Trouver tous les éléments d'ancrage avec une classe spécifique à l'aide de XPath
const allLinks = await page.$x('//a[@class="specific-class"]');
  const linkTexts = await Promise.all(
    allLinks.map(link => page.evaluate(el => el.textContent, link))
);
console.log('Tous les liens avec une classe spécifique :', linkTexts);

// Fermer le navigateur
await browser.close();
})();

    

Explication

  1. Lancement du navigateur:
    • Le script lance un navigateur Puppeteer en mode non headless, ce qui vous permet de voir les actions du navigateur en temps réel.
  2. Navigation vers le site web:
    • Le script navigue vers le site Web de Bright Data à l’aide de page.goto().
  3. Recherche d’éléments par XPath:
    • Premier élément H2: le script trouve le premier élément h2 à l’aide de page.$x('//h2'). Il extrait ensuite son contenu textuel et l’enregistre.
    • Tous les éléments d’ancrage avec une classe spécifique: le script trouve tous les éléments d’ancrage (<a>) avec une classe spécifique à l’aide de page.$x('//a[@class="specific-class"]'). Il extrait et enregistre leur contenu textuel.
  4. Fermeture du navigateur:
    • Enfin, le script ferme le navigateur à l’aide de browser.close().

Pour plus d’informations sur l’utilisation de XPath pour sélectionner des éléments par classe, consultez ce guide utile.

Cette méthode vous permet de naviguer et d’interagir efficacement avec des éléments dans des structures HTML complexes à l’aide de XPath dans Puppeteer, améliorant ainsi vos capacités de Scraping web et d’automatisation.

FAIT CONFIANCE PAR 20,000+ CLIENTS DANS LE MONDE ENTIER

Prêt à commencer ?