Por supuesto, para hacer scraping de Instagram utilizando Node.js y Puppeteer, se puede seguir estos pasos:
1. Instala Node.js y npm en tu sistema. Puedes descargarlos desde la página oficial de Node.js.
2. Crea una nueva carpeta y abre una terminal en esa carpeta.
3. Ejecuta el siguiente comando para inicializar un proyecto de Node.js:
```
npm init
```
Este comando preguntará algunos detalles del proyecto que estás creando.
4. Instala las dependencias necesarias en tu proyecto. Ejecuta el siguiente comando:
```
npm install puppeteer fs
```
Esto instalará las dependencias de Puppeteer y el módulo fs para manejar archivos en Node.js.
5. Crea un archivo JavaScript en el que escribirás el código de scraping. Puedes llamarlo como quieras.
6. En el archivo, carga las dependencias instaladas al principio del archivo:
```javascript
const puppeteer = require('puppeteer');
const fs = require('fs');
```
7. Crea una función asíncrona para manejar la navegación en el sitio de Instagram. Aquí es donde usarás Puppeteer para simular la navegación del usuario.
```javascript
async function scrapeInstagram(username) {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(`
https://www.instagram.com/${username}/`);
// Aquí viene el código que scrapea la página de Instagram.
await browser.close();
}
```
8. Dentro de la función de scraping, utiliza la API de Puppeteer para interactuar con la página de Instagram y extraer la información que desees.
```javascript
async function scrapeInstagram(username) {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(`
https://www.instagram.com/${username}/`);
// Extraer información del perfil
const userProfile = await page.evaluate(() => {
const avatar = document.querySelector('._6q-tv');
const name = document.querySelector('._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl');
const bio = document.querySelector('._6lAjh');
const bioLink = document.querySelector('._6lAjh a');
const postsCount = document.querySelector('._81NM2 span');
const followersCount = document.querySelectorAll('.g47SY')[1];
const followingCount = document.querySelectorAll('.g47SY')[2];
return {
avatar: avatar.getAttribute('src'),
name: name.innerText,
bio: bio.innerText,
bioLink: bioLink.href,
postsCount: postsCount.innerText,
followersCount: followersCount.innerText,
followingCount: followingCount.innerText,
};
});
// Escribir resultados en un archivo
fs.writeFileSync('resultados.json', JSON.stringify(userProfile, null, 2));
await browser.close();
}
```
9. Llamé a la función de scraping con el nombre de usuario del perfil de Instagram que se desea analizar:
```javascript
scrapeInstagram('USERNAME');
```
Reemplaza `USERNAME` con el nombre de usuario real de la cuenta de Instagram que deseas analizar.
10. Ejecuta el