Como encontrar elementos por XPath no Puppeteer?

Usando o Puppeteer, você pode encontrar facilmente elementos com XPath em vez de seletores CSS, utilizando a função page.$x(). Isso é particularmente útil para navegar em estruturas HTML complexas. Aqui está uma maneira mais detalhada e eficiente de usar o XPath com o Puppeteer.

O script a seguir demonstra como usar o Puppeteer para encontrar elementos por XPath e interagir com eles:

      const puppeteer = require('puppeteer');

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

  // Abra o site da Bright Data
  await page.goto('https://brightdata.com');

  // Encontre o primeiro elemento h2 usando XPath
  const [firstH2] = await page.$x('//h2');
  if (firstH2) {
    const h2Text = await page.evaluate(el => el.textContent, firstH2);
    console.log('Primeiro texto H2:', h2Text);
  } else {
    console.log('Nenhum elemento H2 encontrado');
}

// Encontre todos os elementos âncora com uma classe específica usando 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('Todos os links com classe específica:', linkTexts);

// Fechar o navegador
await browser.close();
})();

    

Explicação

  1. Iniciando o navegador:
    • O script inicia um navegador Puppeteer no modo não headless, permitindo que você veja as ações do navegador em tempo real.
  2. Navegando para o site:
    • O script navega até o site da Bright Data usando page.goto().
  3. Localizando elementos por XPath:
    • Primeiro elemento H2: O script encontra o primeiro elemento h2 usando page.$x('//h2'). Em seguida, extrai e registra seu conteúdo de texto.
    • Todos os elementos âncora com uma classe específica: O script localiza todos os elementos âncora (<a>) com uma classe específica usando page.$x('//a[@class="specific-class"]'). Ele extrai e registra seu conteúdo de texto.
  4. Fechando o navegador:
    • Por fim, o script fecha o navegador usando browser.close().

Para obter informações mais detalhadas sobre como usar o XPath para selecionar elementos por classe, consulte este guia útil.

Este método garante que você possa navegar e interagir de forma eficaz com elementos em estruturas HTML complexas usando o XPath no Puppeteer, aprimorando seus recursos de automação e Scraping de dados da web.

CONFIADO POR 20,000+ CLIENTES EM TODO O MUNDO

Pronto para começar?