Loading Light/Dark Toggle
Crie um Scraper de Produtos WooCommerce com Playwright

Como Criar um Scraper de Produtos WooCommerce com Playwright

O Scrapeless Agent Browser executa automação Playwright para vitrines WooCommerce, e os Scrapeless Residential Proxies oferecem roteamento de rede específico por mercado quando os preços da loja variam por localização.

Resumo

  • Coleções e páginas de produto WooCommerce respondem a perguntas diferentes. Use dados de catálogo para descoberta e o estado renderizado para verificar a oferta selecionada quando necessário.
  • Produtos variáveis precisam de uma combinação de opções. Um ID pai ou uma faixa de preço exibida não identificam uma variação comprável.
  • IDs de teste pertencem ao site que os define. Inspecione o tema ativo ou a vitrine de teste antes de escrever seletores.
  • Um registro aceito preserva o contexto da captura. Mantenha juntos identidade da variação, tipo de preço, moeda, disponibilidade e horário da captura.

Escolha a Superfície WooCommerce Que Responde à Pergunta

Um scraper de produtos WooCommerce usa fontes de catálogo para descobrir produtos e Playwright para confirmar uma oferta interativa quando a vitrine renderizada é relevante. Em uma loja que você possui ou está autorizado a coletar, verifique o recurso WooCommerce Store API Products para campos e filtros públicos de catálogo. O recurso Products documenta como produtos publicados e protegidos por senha são representados e como registros de variação de produto diferem da coleção de produtos padrão.

Use um feed de catálogo aprovado se ele fornecer todos os campos necessários. Um navegador é adequado quando um tema ou extensão muda o preço exibido, a mensagem de estoque ou a escolha de variante após interação. Mantenha clara a proveniência de cada campo. Um valor da Store API e o preço visível do produto podem servir a propósitos diferentes se um for um valor base e o outro tiver um ajuste de exibição definido pela loja.

A abordagem funciona para QA de catálogo, monitorar ofertas públicas selecionadas, verificar se produtos variáveis exibem as informações pretendidas e coletar capturas de tela para revisão de merchandising. Defina qual saída a equipe espera antes de fazer scraping. Um fixture adequado para testar seleção de preço pode omitir campos de marketing e ainda ser representativo do fluxo de trabalho de variação.

Pré-requisitos e Instalação

Use Node.js com Playwright e um runtime Chromium. Instale o pacote Playwright e seu binário Chromium ou use um executável Chromium compatível disponível. Você precisa de uma loja que opere ou tenha permissão para coletar e uma amostra com produtos simples, produtos variáveis e combinações indisponíveis. O exemplo abaixo usa um fixture controlado com atributos estáveis, para que possa ser executado antes de adaptar seletores a um tema WooCommerce.

Para execução remota, use o Agent Browser Playwright quickstart e configure uma conta Scrapeless e chave de API conforme documentado. Mantenha a credencial fora de URLs de destino e logs. O exemplo testado localmente recebe uma página Playwright existente. Uma execução remota também precisa de um destino autorizado alcançável a partir da sessão em nuvem e de quaisquer configurações de localização ou mercado acordadas.

Etapa 1. Descubra Produtos e Preserve IDs de Origem

Descubra cada alvo a partir de um sitemap aprovado, navegação da vitrine, feed da loja ou fonte de catálogo documentada. Mantenha o namespace da loja e o ID do produto quando disponíveis. Salve a rota canônica para desduplicação e a rota original usada na visita. O URL Standard define como links relativos são resolvidos. Preserve parâmetros de consulta de variação ou componentes de rota quando eles identificarem o estado da vitrine que você planeja verificar.

Trate paginação de catálogo separadamente da extração de produto. Registre os filtros e o cursor ou página para cada execução de descoberta. Use IDs duráveis para desduplicar resultados e defina um limite superior claro e uma regra de conclusão. Isso evita que páginas de listagem sejam confundidas com páginas de detalhe de produto e dá à equipe uma trilha de auditoria se uma categoria parecer perder produtos.

Etapa 2. Identifique Como o Tema Confirma uma Variação

Uma captura de variação começa identificando os controles de opção e o sinal que confirma seu estado final. Inspecione o rótulo e o comportamento do input. Um tema pode usar selects nativos, amostras de cor/tamanho ou botões personalizados. Quando o coletor seleciona uma combinação, observe um identificador de variação, estado de estoque resolvido ou valor visível vinculado a essa combinação. Delimite a extração à região de detalhe do produto para que um banner de promoção ou item relacionado não forneça o valor.

A função Playwright a seguir lê um fixture de produto em estilo WooCommerce controlado. Os IDs de teste e atributos de prontidão fazem parte desse fixture. Em um site WooCommerce real, adapte os seletores a um tema conhecido ou peça à equipe da loja para expor um marcador de prontidão estável. O exemplo exercita uma mudança assíncrona de preço para uma caneca azul selecionada.

async function readWooProduct(page, targetUrl, selections) {
  const response = await page.goto(targetUrl, { waitUntil: 'domcontentloaded' });
  if (!response?.ok()) throw new Error('Product navigation failed');

  const product = page.getByTestId('product-detail');
  const title = await product.getByRole('heading', { level: 1 }).innerText();
  for (const [label, value] of Object.entries(selections)) {
    await product.getByRole('combobox', { name: label }).selectOption(value);
  }

  const expected = JSON.stringify(selections);
  await page.waitForFunction(options => {
    const node = document.querySelector('[data-testid="resolved-offer"]');
    if (!node || node.dataset.state !== 'ready') return false;
    const selected = JSON.parse(node.dataset.options || '{}');
    return Object.entries(JSON.parse(options))
      .every(([name, value]) => selected[name] === value);
  }, expected, { timeout: 5000 });

  return product.getByTestId('resolved-offer').evaluate((node, heading) => ({
    title: heading,
    url: location.href,
    variantId: node.dataset.variantId,
    options: JSON.parse(node.dataset.options),
    priceText: node.querySelector('[data-testid="price"]')?.textContent.trim() || null,
    currency: node.dataset.currency || null,
    availability: node.dataset.availability || 'unknown'
  }), title);
}

O fixture controlado começa com a opção branca e resolve azul para a variação 11 com um valor exibido de $21.00. O teste local verifica a variação e o valor juntos. Um produto simples pode usar uma seleção vazia e uma oferta pronta com sua própria identidade de produto se o contrato do adaptador definir esse formato. Quando uma variação está indisponível, capture sua mensagem explícita de estoque e permita que o valor esteja ausente se o contrato permitir.

Etapa 3. Interprete o Preço Com Seu Contexto

Um campo de preço deve distinguir o preço de venda visível de um preço de lista riscado e de uma faixa. Mantenha o valor bruto e a moeda antes da normalização. Use o vocabulário Offer para preço e disponibilidade ao nomear os campos normalizados. Se impostos, taxas, frete ou promoções forem relevantes, documente como a superfície atual os inclui. Evite misturá‑los silenciosamente entre mercados.

Uma variante indisponível ainda é uma observação de catálogo útil. Armazene seu estado explícito e a combinação selecionada. Dê ao estado de variante não resolvida um resultado separado para que um preço vazio nunca seja interpretado como zero. Um seletor vazio pode ser causado pelo tema ativo, por uma combinação não suportada ou por uma falha ao acessar a página. Verifique as evidências ao redor antes de atribuir um rótulo de estoque.

Use uma única fonte de verdade aprovada para normalização de quantias. Se você usar a Store API, interprete seus valores com as informações de moeda que o acompanham. Se você usar a exibição, faça o parse de acordo com o locale conhecido do site e o tipo de quantia. Compare os dois para uma pequena amostra e registre diferenças deliberadas. Isso pode detectar plugins de loja que alteram um campo de exibição sem atualizar o feed de catálogo.

Etapa 4. Execute o Navegador no Mercado Correto

Usar Scrapeless Agent Browser quando o trabalho precisar de uma sessão de navegador gerenciada, e a managed web automation solution ao planejar fluxos de trabalho interativos em um portfólio de lojas. O Playwright proxy setup guide explica como o roteamento se encaixa na configuração do navegador. Para uma captura autorizada específica de local, selecione Residential Proxies e verifique moeda, locale e contexto de entrega após a navegação.

Um mercado definido em um seletor da loja pode ser armazenado em cookies ou na URL. Inicie cada teste de mercado independente com a política de sessão pretendida. Verifique se o mercado renderizado está de acordo antes de aceitar a quantia. Mantenha a duração real do navegador e a transferência por template para que você possa comparar com Scrapeless pricing. A price monitoring proxy solution é útil quando a coleta precisa de observações consistentes região por região.

O que o Coletor Retorna

Um registro WooCommerce útil contém a loja, identificador de produto ou variação, atributos selecionados, URL final, preço bruto exibido, moeda, disponibilidade explícita e horário da observação. Registre a fonte, a versão da coleta e se você usou um caminho de produto simples ou variável. Salve resultados incompletos com um motivo claro e separe‑os de eventos de oferta validados. Isso oferece aos consumidores de precificação ou QA uma forma confiável de distinguir uma observação completa de um coletor que chegou à URL mas não conseguiu verificar a página.

Construa o Adaptador em Torno de Uma Família de Produtos Conhecida

Comece com uma loja que você possa inspecionar e uma variação cujo preço visível você conheça. Exercite separadamente os caminhos de lista de produtos, produto simples e produto variável, depois compare as linhas armazenadas com a vitrine renderizada. Adicione mercados e templates de fonte depois que você puder explicar cada campo e resultado.

Pronto para Capturar Variantes WooCommerce na Nuvem?

Execute seu adaptador WooCommerce no Agent Browser e verifique a variação selecionada antes de exportar o preço.

Inscreva‑se hoje e receba $5 in free credit — nenhum cartão de crédito necessário.

Resgate seus $5 de crédito →

FAQ

O WooCommerce tem um recurso público de produtos?

A WooCommerce Store API documenta um recurso Products para dados de produtos da vitrine. Verifique suas regras e a superfície suportada e autorizada da loja específica antes de coletar.

Todo tema WooCommerce expõe os mesmos seletores?

Temas e extensões WooCommerce podem renderizar controles de variação de formas diferentes. Inspecione os rótulos reais e sinais de prontidão e cubra cada adaptador com um fixture representativo.

Você precisa de um proxy para extrair dados do WooCommerce?

Use um proxy direcionado por localização quando a observação autorizada exigir uma localização de rede específica. Testes de lojas locais e feeds autorizados podem funcionar sem um.

O que deve acontecer quando a coleta chega a uma página de desafio ou negada?

Registre a falha e respeite as regras de acesso da fonte. Confirme o escopo permitido, limites de tráfego e termos aplicáveis com o proprietário e o departamento jurídico conforme necessário.

Isso pode ser executado sem um agente de IA?

Playwright pode selecionar variantes e extrair registros usando código determinístico. Comece com uma coleta limitada e mantenha a simultaneidade dentro dos limites acordados com a loja.

O slug do produto ou o ID da variação deve ser a chave?

Use o namespace da loja com seu ID de produto ou variação quando disponível. Preserve o slug legível por humanos e a URL completa da variação como evidência de captura e informação de roteamento.

Referências