Pasos para extraer y guardar datos scrapeados con puppeteer en determinada base de datos mysql.
Primero necesitamos instalar la librerias de puppeteer y mysql:
npm i puppeteer-core npm install mysql
Y una demo sencilla para guardar unos datos (nombre y apellidos) de una web (con selectores #nombre y #apellidos en su html) y isertarlos en una tabla (persona) de una basede datos (agenda) mysql:
const puppeteer = require('puppeteer');
var mysql = require('mysql');
(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'agenda'
});
let url = 'http://un-dominio.com/url-que-sea';
await page.goto(url)
if (await page.$('#nombre') !== null){
nombre = await page.$eval('#nombre', el => el.innerText);
apellidos = await page.$eval('#apellidos', el => el.innerText);
const insertoPersona = "INSERT INTO persona ( nombre, apellidos ) values (?,?)";
let rows = await new Promise((resolve,reject)=>{
connection.query(insertoPersona,[nombre, apellidos],function(err, rows) {
if (err) {
console.log(err);
reject(err);
} else {
console.log('Fila insertada');
resolve(rows);
}
});
});
}
await browser.close()
})()
pd: cambiar los valores de conexión por los tuyos.
Agradezco tu comentario 🤘