Partner Scraper

Catálogo e operação

0 produtos

Filtrar produtos

Dados do cache SQLite. Para popular: GitHub Actions → POST /api/v1/ingest.

Limitações por parceiro

TD Synnex

tdsynnex

Método: API HTTP (keywordsearch)

VPS / datacenter: Funciona

GitHub Actions: Funciona

Limitações

  • Preços de parceiro podem estar ocultos sem login B2B.
  • Catálogo público limitado face à área autenticada.

Estratégia

Scrape local no servidor do cliente ou via GitHub Actions. Pesquisa por referência (SKU) é a forma mais fiável.

EET Group

eetgroup

Método: Playwright + intercept Search API

VPS / datacenter: Funciona

GitHub Actions: Funciona

Limitações

  • Azure WAF pode exigir desafio de browser.
  • Preços podem ser null sem sessão de parceiro.
  • Estrutura do catálogo varia por região.

Estratégia

Playwright headless com delays entre pedidos. Usar modo search com watchlist para sync diário de preços.

Logiscenter

logiscenter

Método: Playwright + parse Magento

VPS / datacenter: Bloqueado (Cloudflare)

GitHub Actions: Funciona

Limitações

  • Cloudflare bloqueia IPs de datacenter (VPS comum).
  • Não visitar homepage antes de categorias (dispara challenge).
  • Preços podem exigir login.

Estratégia

GitHub Actions → POST /api/v1/ingest → API Render/servidor. Nunca scrape agressivo nem bypass anti-bot.

Cartucho

cartucho

Método: Playwright + cards + AJAX search

VPS / datacenter: Bloqueado (HTTP 429)

GitHub Actions: Funciona

Limitações

  • Blacklist de IP em servidores IIS (429).
  • Pesquisa via UI AJAX, não URL directa.
  • Preço promo (.price-incl) vs PVP (.price-list).

Estratégia

GHA para catálogo inicial e sync. No cliente, IP residencial/comercial pode funcionar localmente.

Como obter e manter os dados

Bootstrap inicial

  1. Correr workflow scrape no GitHub (todos os parceiros, limit 40–50).
  2. GHA envia resultados para POST /api/v1/ingest (secrets API_INGEST_URL + API_KEY).
  3. Validar nesta página com filtros por parceiro.
  4. WordPress plugin aponta para a mesma URL da API.

Atualização diária de preços

  1. Manter queries/watchlist.txt com referências (CE285A, CF283A, …).
  2. Workflow price-sync (dias úteis 05:30 UTC) faz search por referência.
  3. Resultados fazem upsert na API (preços actualizados, URLs estáveis).
  4. Alternativa: API_SCHEDULE_ENABLED=true no servidor com RAM suficiente.

Arquitectura híbrida (recomendada)

  1. Render ou servidor cliente: API + SQLite + esta página de consulta.
  2. GitHub Actions: scrapers com Playwright (IPs não bloqueados).
  3. Servidor cliente (IP diferente): TD Synnex + EET em local se possível.
  4. WordPress: chamadas server-side (wp_remote_*) com X-API-Key.

Fluxo no Render (teste)

GitHub Actions (scrape)
        │
        ▼ POST /api/v1/ingest + X-API-Key
Render API (esta página + REST)
        │
        ▼ GET /api/v1/products
WordPress plugin / widget

Scheduler API: inactivo (usar GHA). Docs API: /docs

Cuidados e boas práticas

Ética e conformidade

Este projecto usa delays, retries moderados e parsers estáveis. Não implementa evasão agressiva de anti-bot. Usar apenas em contexto autorizado (parceiro, cliente, catálogo público). Em caso de bloqueio, mudar de IP (GHA) ou negociar acesso API oficial com o fornecedor.