Com convertir qualsevol URL en una captura de pantalla des de Node.js

Aprèn a capturar qualsevol pàgina web com a PNG des de Node.js amb una sola petició fetch. Sense Puppeteer, sense Chromium, només codi net.

jueves, 2 de julio de 2026 • 4 min de lectura • Equip Q2BSTUDIO

Captura pàgines web amb Node sense Puppeteer

En el desenvolupament de programari modern, la necessitat d'obtenir representacions visuals de pàgines web és cada cop més freqüent. Ja sigui per generar miniatures d'enllaços, documentar interfícies de competidors o capturar panells de control en informes automatitzats, els desenvolupadors busquen solucions eficients que no consumeixin recursos excessius. Tradicionalment, eines com Puppeteer han estat l'opció predeterminada, però requereixen empaquetar un navegador complet, mantenir-lo actualitzat i disposar de prou memòria al servidor. Per a la majoria dels casos d'ús, aquest enfocament resulta sobredimensionat. Una alternativa molt més lleugera consisteix a delegar el procés de renderització a una API de captures, reduint el codi Node.js a una simple petició fetch. A continuació, explorem com implementar aquesta tècnica de forma robusta, incloent captures a pàgina completa, selecció d'elements específics i processament per lots, tot sense necessitat d'instal·lar un navegador.

El procediment bàsic és sorprenentment directe: s'envia una URL a un endpoint i es rep una imatge en format PNG. No cal invocar puppeteer.launch ni gestionar banderes de seguretat com --no-sandbox. Amb Node 18 i versions posteriors, la funció fetch global permet interactuar amb qualsevol API REST. Creem una funció asíncrona que realitza una petició POST al servei HTML to Image, incloent la URL objectiu, les dimensions del viewport i una clau API emmagatzemada en variables d'entorn. La resposta retorna una URL pública de la imatge allotjada. Si es vol desar el fitxer localment, n'hi ha prou amb descarregar aquesta imatge i escriure-la al disc utilitzant el mòdul natiu fs/promises. Aquest flux complet es redueix a unes poques línies de codi, sense dependències externes ni configuracions complexes.

Per a escenaris on es necessita la pàgina completa —per exemple, un article extens o una taula de preus que es desplaça més enllà del viewport inicial—, l'API ofereix el paràmetre full_page. Activant-lo, la captura abasta tot el contingut desplaçable, inclosos els topalls. No cal manipular el DOM ni calcular altures dinàmiques; el servei s'encarrega de tot. De la mateixa manera, si el que interessa és un element concret com un gràfic, una targeta o un widget, es pot passar un selector CSS. L'API espera que aquest element estigui present al DOM i després el retalla pels seus límits reals, evitant coordenades fixes que es trenquin amb canvis de disseny. Aquesta capacitat resulta especialment útil en aplicacions a mida on els panells de dades s'actualitzen dinàmicament.

Quan es treballa amb llistes d'URLs —per exemple, en informes periòdics o en processos de monitorització—, el habitual és executar diverses captures de forma concurrent però controlada. Implementar un petit helper de concurrència amb un límit de peticions simultànies evita sobrecarregar l'API i respecta els límits de taxa. Per a lots molt grans o processos que no s'hagin de bloquejar, es recomana utilitzar un webhook que notifiqui en acabar cada renderització, en lloc d'esperar respostes sincròniques. Aquest patró encaixa perfectament en arquitectures d'automatització de processos empresarials, on l'eficiència i l'escalabilitat són crítiques.

Des d'una perspectiva tècnica i empresarial, la simplificació de la infraestructura té un impacte directe en els costos operatius. Prescindir d'un navegador complet redueix el consum de memòria i CPU, cosa que permet executar aquests scripts en entorns de recursos limitats, com funcions serverless o contenidors petits. Empreses com Q2BSTUDIO, especialitzades en desenvolupament d'aplicacions a mida, integren aquest tipus de solucions per agilitzar la generació de documentació visual, dashboards personalitzats i informes automatitzats. La combinació d'APIs lleugeres amb plataformes cloud permet oferir serveis cloud AWS i Azure robustos, on la captura de pantalles és només un component més dins d'ecosistemes més amplis.

A més, aquestes capacitats s'alineen amb les tendències actuals d'intel·ligència artificial i agents IA. Per exemple, un agent encarregat de supervisar la competència pot executar captures programades de pàgines de preus i després analitzar els canvis mitjançant models de visió per computador. La ia per a empreses es beneficia enormement de tenir dades visuals estructurades, i les captures automatitzades són el primer pas per alimentar pipelines d'anàlisi. Així mateix, en l'àmbit de la ciberseguretat, les captures periòdiques de panells de monitorització ajuden a detectar anomalies en la interfície o canvis no autoritzats en aplicacions web.

Finalment, per a equips que treballen amb serveis d'intel·ligència de negoci, eines com Power BI poden enriquir-se amb imatges de pàgines web capturades automàticament, integrant indicadors externs en els informes. La versatilitat d'aquest enfocament —des d'una simple funció Node fins a un sistema orquestrat de captures— demostra que sovint menys és més: una petició fetch reemplaça un navegador complet, i la simplicitat resultant accelera el desenvolupament sense sacrificar funcionalitat.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.