Buenas a todos! Hoy os traigo un tutorial para realizar scraping a una web utilizando Node.js. Si eres nuevo en este tema, no te preocupes, voy a explicar todo paso a paso, para que puedas seguirlo sin problemas. ¡Empecemos!

Paso 1: Crear el archivo de nuestro script
Crea un nuevo archivo llamado "scraping.js" en la carpeta de tu proyecto.

Paso 2: Importar las librerías
Añade las siguientes líneas al principio de tu archivo "scraping.js" para importar las librerías que instalamos:
Paso 3: Realizar la petición HTTP
Vamos a realizar una petición HTTP a la página web que queremos scrapear utilizando Axios. Añade la siguiente función en tu archivo "scraping.js":
Paso 4: Analizar y extraer la información
Ahora vamos a utilizar Cheerio para analizar el contenido de la página y extraer la información que nos interesa. Supongamos que queremos obtener los títulos de los artículos de un blog. Podemos hacerlo de la siguiente manera:
No olvides reemplazar "
* En este punto, si no controlas de selectores CSS puedes darle un vistazo a este otro post:
En este ejemplo, vamos a ver cómo adaptar el script anterior para extraer los títulos H1 de varias URLs y guardarlos en un archivo CSV.
Paso 1: Instalar la librería adicional
Vamos a instalar la librería 'csv-writer' para facilitar la escritura en archivos CSV. Ejecuta el siguiente comando en la terminal:
Paso 2: Importar la librería
Añade la siguiente línea al principio de tu archivo "scraping.js" para importar la librería que acabamos de instalar:
Paso 3: Crear la función para guardar los H1 en un archivo CSV
Agrega la siguiente función en tu archivo "scraping.js":
Esta función creará un archivo llamado 'h1_data.csv' con las columnas 'URL' y 'H1', y guardará los datos extraídos en él.
Paso 4: Modificar la función principal para manejar múltiples URLs y extraer los H1
Reemplaza la función 'getArticleTitles' con la siguiente función:
No olvides reemplazar las URLs de ejemplo en el array 'urls' con las URLs de las páginas web que quieras scrapear.
Ahora, cuando ejecutes el script, extraerá los títulos H1 de todas las URLs proporcionadas y los guardará en un archivo CSV llamado 'h1_data.csv'.
¡Y eso es todo! Ahora tienes un script básico para realizar web scraping con Node.js. Puedes modificar y adaptar el código para extraer diferentes tipos de información según tus necesidades.
Espero que este tutorial te haya sido de utilidad y cualquier duda usa los comentarios!
¿Qué es el Web Scraping?
El Web Scraping es una técnica que se utiliza para extraer información de páginas web de forma automática. Con esta técnica podemos recopilar datos de sitios web y guardarlos en formatos útiles como JSON, CSV o incluso en bases de datos.¿Qué necesitamos?
Para este tutorial necesitaremos lo siguiente:- Node.js instalado en nuestro equipo
- Un editor de texto (Visual Studio Code, Sublime Text, etc.) recomendado Visual Studio Code.
- Conocimientos básicos de JavaScript y se selectores CSS
Instalando las dependencias
Vamos a utilizar las siguientes librerías para facilitar el proceso de web scraping:- Axios: nos permitirá realizar peticiones HTTP
- Cheerio: nos ayudará a analizar y extraer información de la página web

JavaScript:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.
Realizando el scraping
Paso 1: Crear el archivo de nuestro script
Crea un nuevo archivo llamado "scraping.js" en la carpeta de tu proyecto.

Paso 2: Importar las librerías
Añade las siguientes líneas al principio de tu archivo "scraping.js" para importar las librerías que instalamos:
JavaScript:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.
Paso 3: Realizar la petición HTTP
Vamos a realizar una petición HTTP a la página web que queremos scrapear utilizando Axios. Añade la siguiente función en tu archivo "scraping.js":
JavaScript:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.
Paso 4: Analizar y extraer la información
Ahora vamos a utilizar Cheerio para analizar el contenido de la página y extraer la información que nos interesa. Supongamos que queremos obtener los títulos de los artículos de un blog. Podemos hacerlo de la siguiente manera:
JavaScript:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.
No olvides reemplazar "
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.
" por la URL de la página web que quieras scrapear y ajustar el selector de Cheerio ('$("article h2")') según la estructura del sitio y lo que quieras extraer.* En este punto, si no controlas de selectores CSS puedes darle un vistazo a este otro post:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.
Ejemplo: Extraer múltiples H1 de varias URLs y guardarlos en un archivo CSV
En este ejemplo, vamos a ver cómo adaptar el script anterior para extraer los títulos H1 de varias URLs y guardarlos en un archivo CSV.
Paso 1: Instalar la librería adicional
Vamos a instalar la librería 'csv-writer' para facilitar la escritura en archivos CSV. Ejecuta el siguiente comando en la terminal:
JavaScript:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.
Paso 2: Importar la librería
Añade la siguiente línea al principio de tu archivo "scraping.js" para importar la librería que acabamos de instalar:
JavaScript:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.
Paso 3: Crear la función para guardar los H1 en un archivo CSV
Agrega la siguiente función en tu archivo "scraping.js":
JavaScript:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.
Esta función creará un archivo llamado 'h1_data.csv' con las columnas 'URL' y 'H1', y guardará los datos extraídos en él.
Paso 4: Modificar la función principal para manejar múltiples URLs y extraer los H1
Reemplaza la función 'getArticleTitles' con la siguiente función:
JavaScript:
Contenido sólo para usuarios registrados. Por favor inicia sesión o regístrate.
No olvides reemplazar las URLs de ejemplo en el array 'urls' con las URLs de las páginas web que quieras scrapear.
Ahora, cuando ejecutes el script, extraerá los títulos H1 de todas las URLs proporcionadas y los guardará en un archivo CSV llamado 'h1_data.csv'.
¡Y eso es todo! Ahora tienes un script básico para realizar web scraping con Node.js. Puedes modificar y adaptar el código para extraer diferentes tipos de información según tus necesidades.
Espero que este tutorial te haya sido de utilidad y cualquier duda usa los comentarios!