Como instalar puppeteer no Debian

image_pdfimage_print
  1. Vá na página do projeto Node.js
  2. Baixe a versão correspondente do Node ao sistema operacional e processador de seu computador/servidor
    1. Para quem tem computadores 32bits padrão AMD/Intel, utilize o Linux Binaries (x86/x64) 32-bit
    2. Para quem tem computadores 64bits padrão AMD/Intel, utilize o Linux Binaries (x86/x64) 64-bit
    3. Usuário do Raspbian utilizem o Linux Binaries (ARM) – ARMv7 (mesmo os que tem Raspberry 3. O sistema operacional limita o uso do processador versão 64 para 32, de modo a distribuição simplificar a produção e manutenção da distribuição Raspbian)
    4. Caso tenha um Rock64, utilize a versão binária do Node.js para ARM64 (Linux Binaries (ARM) – ARMv8)
  3. Após baixar, descompacte o arquivo em /opt
  4. Deverá ter sido criado uma pasta contendo a versão. Num ARM64, a pasta criada seria:
    1. /opt/node-v9.4.0-linux-arm64
  5. Crie um link simbólico em /opt para a versão corrente do Node.js que deseja utilizar como padrão
    1. cd /opt
    2. ln -s node-v9.4.0-linux-arm64/ nodejs
  6. Adicione ao path o diretório do executável no Node.js
    1. Abaixo, iremos fazer a configuração apenas para a sessão corrente
      1. PATH="$PATH:/opt/nodejs/bin"
        
  7. Caso tente efetuar a instalação do puppeteer diretamente utilizando o npm, no Debian Wheeze e Stretch, obtivemos uma série de erros, onde ao se resolver um, ocorria outro. Iremos propor então uma outra forma que para nós funcionou de primeira.
  8. Instale o yarn
    1. npm install yarn
  9. Adicione o path do binário do Yarn ao path
    1. PATH="$PATH:/opt/node_modules/yarn/bin"
      
  10. Instale o puppeteer
    1. yarn add puppeteer
  11. E pronto! Já deve ser possível utilizar o puppeteer normalmente num script JavaScript a ser executado pelo Node.js instalado

Apenas uma observação. Verificamos que na instalação do puppeteer, a versão errada do navegador Chromium (que já vem por default por questão de compatibilidade entre as versões do navegador e da biblioteca puppeteer, a versão instalada estava com plataforma errada. Exemplo. Em Debian ARM64, com Node.js binary ARMv8 (64 bits), o Chromium instalado internamente para seu uso pelo puppeteer foi o AMD64, fazendo com que qualquer script utilizando o puppeteer falhasse assim que tentasse abrir o navegador. O problema pode ser contornado na opção browser launch do código usando puppeteer indicar o navegador chromium ou chrome já instalado em seu sistema.

No nosso caso, basta:

puppeteer.launch({
"executablePath":"/usr/bin/chromium"
})

No script acima, adicione o path para a sua versão instalada.

E agora será utilizado o Chromium já instalado regularmente no sistema operacional. Um ponto muito importante a notar é que a versão do Navegador deve ser compatível com a versão da biblioteca puppeteer ou algumas funções poderão não funcionar corretamente ou o script falhar.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!