Tracker de precios de Amazon con:
pnpm install
cp .env.example .env
.env:DECODO_AUTH_TOKEN=tu_token
TURSO_DATABASE_URL=tu_database_url
TURSO_AUTH_TOKEN=tu_auth_token
AMAZON_ASINS=B0XXXXXXXX,B0YYYYYYYY
AMAZON_STORE=es
Notas:
AMAZON_ASINS acepta una lista separada por comas.AMAZON_STORE define el dominio (es -> amazon.es, com -> amazon.com, etc.).pnpm track
Esto:
price_snapshots si no existe,pnpm track:manual
Este modo hace fetch directo contra Amazon y puede fallar por CAPTCHA o bloqueo.
pnpm track:manual:proxy
Este modo reutiliza el scraper por API (Decodo) y muestra logs manuales por ASIN indicando que la solicitud se realiza por proxy.
pnpm dev
Abre la URL que muestra Astro (normalmente http://localhost:4321) para ver:
pnpm dev: arranca la app en desarrollopnpm build: build de producciónpnpm preview: sirve el build localpnpm track: ejecuta scraper API + persistenciapnpm track:manual: ejecuta scraper manual + persistenciapnpm track:manual:proxy: ejecuta scraper manual de consola usando Decodo (proxy)Existe un workflow en .github/workflows/track-amazon-prices.yml que se ejecuta:
workflow_dispatch.Debes configurar estos secretos en GitHub:
DECODO_AUTH_TOKENTURSO_DATABASE_URLTURSO_AUTH_TOKENAMAZON_ASINSsrc/
db/
client.ts # cliente Turso
schema.ts # creación de tabla e índice
queries.ts # inserts y consultas
tracker/
index.ts # entrypoint del tracking por API
scraper.ts # scraping con Decodo
manual-scraper.ts
utils.ts
types.ts
pages/
index.astro # dashboard
La parte intercambiable está en src/tracker/scraper.ts.
Mientras scrapeProduct(asin) devuelva la estructura ProductSnapshot, el resto del sistema no necesita cambios.