Si queremos usar Puppeteer en nodejs, simplemente hacemos:
npm i puppeteer
# or "yarn add puppeteer"
Después de eso, los humanos pensarían que el siguiente código funcionaría:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(‘https://example.com’);
await page.screenshot({path: ‘example.png’});
await browser.close();
})();
Bueno… déjame decirte que funcionará… pero no en un procesador ARM, y hoy tenemos mucha suerte, porque Raspberry Pi contiene un procesador ARM.
Obtendrá el siguiente error al intentar ejecutar:
Error: Failed to launch chrome!
/home/xxxx/.../node_modules/puppeteer/.local-chromium/liniux-641577/chrome-linux/chrome: Syntax error: word unexpected (expecting ") "
Resolver el problema
Si está utilizando un procesador ARM, por ejemplo, Raspberry PI, como se muestra arriba, resolví el problema con el siguiente comando:
Instalar Chromium ejecutando:
sudo apt install chromium-browser chromium-codecs-ffmpeg
Por lo general, instala Chromium en la carpeta /usr/bin/. Así que cambiamos el ejecutablePath a continuación:
const browser = await puppeteer.launch({
headless: true,
executablePath: '/usr/bin/chromium-browser',
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
Eso es todo, ejecutar su programa Nodejs ahora ejecutará Puppeteer con éxito y debería abrir el navegador Chromium.
¡Chaolin!