Explorando o poder do marionetista

David Abimbola Blocked Unblock Seguir Seguindo 16 dez

Um navegador sem cabeçalho é um navegador da Web sem uma interface gráfica com o usuário. Ele fornece controle automatizado de uma página da Web em um ambiente semelhante aos navegadores da Web populares, mas é executado por meio de uma linha de comando ou usando comunicação de rede.

Marionetista é a ferramenta oficial para o Chrome Headless pela equipe do Google Chrome.É uma biblioteca node.js que fornece uma API de alto nível para controlar o Chromium ou o Chrome sobre o protocolo DevTools.É simplesmente uma maneira de executar navegadores chrome sem realmente executar o chrome.

O que você pode conseguir com Puppeteer?

Quase tudo o que o Chrome ou o Chromium podem fazer.

  • Gere capturas de tela e PDFs de páginas.
  • Rastrear um SPA (Aplicativo de Página Única) e gerar conteúdo pré-renderizado (por exemplo, “SSR” (Renderização no Lado do Servidor)).
  • Automatize o envio de formulários, teste de interface do usuário, entrada de teclado, etc.
  • Crie um ambiente de teste automatizado e atualizado. Execute seus testes diretamente na versão mais recente do Chrome usando os recursos mais recentes de JavaScript e navegador.
  • Capture um rastreio de cronograma do seu site para ajudar a diagnosticar problemas de desempenho.
  • Teste as extensões do Chrome.

OBJETIVOS

Neste guia, vamos explorar o poder do manipulador de marionetes. Nós usaremos o manipulador de marionetes para capturar o twitter, obter uma imagem de uma página da web, converter uma página da web em pdf. Este post lhe dará uma boa idéia de como usá-lo e como você pode configurá-lo caso decida usá-lo em seu próximo projeto. Além disso, mantenha-se atualizado com a documentação porque o Puppeteer está em desenvolvimento e as APIs estão sujeitas a alterações. Aqui está o link que acompanha o código no GitHub .

PRECISITO

  1. Node.js : é uma plataforma do lado do servidor criada em JavaScript Engine (V8 Engine) do Google Chrome.
  2. Marionetista

Uma vez instalado, criamos um novo projeto nodejs e instalamos o manipulador de marionetes.

 npm i - salva marionetista 

Depois de instalar o marionetista. Nós definitivamente precisaríamos de um manipulador de marionetes em nosso aplicativo.

 titereiro = exigir ('titereiro'); 

CÓDIGO

Captura de tela

O código acima obtém um endereço da web que o usuário medium.com usar a partir da solicitação feita ao servidor. Se nada for fornecido, o medium.com será usado como o padrão. A linha 6-11 faz o seguinte:

  • Lançar marionetista.
  • Abra uma nova página.
  • Abra o endereço da web fornecido.
  • Obtém um instantâneo da página da web e salva a imagem em nossa pasta de ativos.
  • Feche o marionetista.

Simples, está certo! Aplicamos a mesma lógica definida acima para converter uma página da web em pdf. A única diferença entre os dois é que eles chamam de método diferente.

 aguarda page.screenshot ({path: `. / assets / snapshot.png`}); 

e os outros usos

 aguardar page.pdf ({caminho: `. / assets / news.pdf`, formato: 'A4'}); 

conforme definido abaixo.

Convertendo a página da web em pdf

Para aprender a configurar um cron job que continua enviando pdf (página da web convertida para pdf) todos os dias usando puppeteer e nodemailer verifique aqui e aqui . Se você tiver alguma dúvida, nodemailer à vontade para perguntar na seção de comentários.

Raspando o twitter

Indo sobre o código acima:

  • Obtém a consulta de pesquisa da solicitação enviada ao nosso servidor.
  • Lançar marionetista.
  • Abra uma nova página.
  • Abra o endereço da web fornecido.
  • Definir porta de exibição de página.
  • A linha 17-59 obtém informações nos elementos DOM de tweets.
  • Envie a resposta de volta para o usuário.

Se você quiser obter tweets sobre tendências em um determinado tópico, basta osibanjo o ponto de extremidade abaixo e substituir osibanjo pelo que você deseja procurar.

Clique no ponto final abaixo:

 https://puppeteer-demo1.herokuapp.com/scrape-twitter?search=osibanjo 

Isso é tudo Folks.You pode encontrar o código-fonte completo no Github . Comentários e comentários são bem-vindos.

E se você, eu posso até mesmo fazer um tutorial em vídeo passo-a-passo e escrever sobre como você pode configurar um cron job que continue enviando um pdf de página da web de notícias diárias do ycombinator para o seu e-mail. ?

Sobre mim: Sou um desenvolvedor freelance de Javascript, malabarismo entre trabalho contratado, código aberto, projetos paralelos e blogs. Siga-me no Twitter .

Links de referência:

Texto original em inglês.