TypeScript:
Descargando una página web
Cómo Hacerlo:
Aquí te dejo un ejemplo cortito y al grano usando node-fetch, una librería muy usada para hacer peticiones HTTP que imita la API fetch del navegador.
Primero, instala node-fetch con npm:
npm install node-fetchLuego, escribe el siguiente código TypeScript para descargar el contenido de una página web:
import fetch from 'node-fetch';
async function descargarPagina(url: string): Promise<string> {
const respuesta = await fetch(url);
if (!respuesta.ok) {
throw new Error(`Error al descargar la página: ${respuesta.statusText}`);
}
return await respuesta.text();
}
const url = 'http://example.com';
descargarPagina(url)
.then(contenido => console.log(contenido))
.catch(error => console.error(error));Ejecuta tu script de TypeScript y deberías ver el contenido HTML de http://example.com en tu consola.
Profundizando:
Node-fetch es sólo una de las muchas opciones para descargar páginas web en Node.js. Históricamente, solíamos usar el módulo http, que es más verboso y menos intuitivo. Otras alternativas modernas incluyen axios y got.
La implementación de node-fetch es muy útil, ya que puedes usar la misma lógica de la API fetch del navegador, lo cual es ideal para aquellos familiarizados con el front-end. Sin embargo, para scraping o descargas más complejas necesitarás algo más robusto como cheerio o puppeteer, que pueden manejar JavaScript del lado del cliente y interactuar con el DOM.
Ver También:
Para aprender más sobre las diferentes herramientas y técnicas:
- Documentación de
node-fetch: https://github.com/node-fetch/node-fetch axios: https://github.com/axios/axiosgot: https://github.com/sindresorhus/gotcheeriopara análisis de HTML: https://cheerio.js.org/puppeteerpara interactuar con navegadores: https://pptr.dev/