Como criar um clicador de sites com NodeJS

Aprenda a criar um clicador de sites usando Node.js e Puppeteer. Neste tutorial, abordaremos a instalação do Node.js, configuração do projeto, interação com elementos da página e automação de ações, como curtir artigos em um site específico.

[ Hits: 2.155 ]

Por: Fábio Berbert de Paula em 01/04/2023 | Blog: https://fabio.automatizando.dev


Introdução



O que é NodeJS

Node.js é uma plataforma de execução do JavaScript no lado do servidor, construída sobre o mecanismo V8 do Google Chrome. Ele permite que os desenvolvedores criem aplicações web escaláveis e de alta performance, utilizando JavaScript tanto no front-end quanto no back-end. Neste artigo, vamos explorar como criar um clicador de sites usando Node.js e a biblioteca Puppeteer para interagir com páginas web.

Como instalar o NodeJS no Debian e derivados

Para instalar o Node.js no Debian e em sistemas baseados no Debian, como Ubuntu e Linux Mint, você pode utilizar o gerenciador de pacotes apt. Abra o terminal e digite os seguintes comandos:

sudo apt update
sudo apt install nodejs npm

Após a instalação, verifique a versão do Node.js e do npm (gerenciador de pacotes do Node.js) com os comandos:

node -v
npm -v

Criando o projeto

Primeiro, crie uma pasta para o projeto e navegue até ela:

$ mkdir like-no-vol
$ cd like-no-vol

Em seguida, inicialize o projeto com o npm:

npm init

Siga as instruções na tela para configurar o projeto. Depois, instale a biblioteca Puppeteer como uma dependência do projeto:

npm install puppeteer --save

Como abrir o Developer Tools do navegador e inspecionar elementos

Para inspecionar elementos em uma página web, abra o navegador Google Chrome e navegue até a página desejada. Em seguida, clique com o botão direito do mouse em qualquer parte da página e selecione "Inspecionar" no menu contextual. O Developer Tools do Chrome será aberto, e você poderá navegar pelos elementos da página, inspecionar estilos CSS, visualizar a hierarquia do DOM e muito mais.

Usei esse método para descobrir o seletor dos links para os artigos do VOL, assim como o botão de like de um artigo.

Criar o arquivo index.js

Com o projeto configurado e a biblioteca Puppeteer instalada, crie um arquivo chamado "index.js" na raiz do projeto e insira o seguinte código:

const puppeteer = require('puppeteer')
const URL = 'https://www.vivaolinux.com.br'

// Função para extrair links dos artigos
const extractLinks = async (page) => {
  const rows = await page.$$eval(
    'div.media-body > h3 > a.home-link',
    (rows) =>
      rows
        .map((row) => (row ? row.getAttribute('href') : null))
        .filter((row) => row !== null)
        .slice(0, 3)
  )
  return rows
}

// Função para curtir um artigo
const likeInPage = async (page, href) => {
  const ARTICLE_URL = URL + href
  await page.goto(ARTICLE_URL)
  console.log('Acessar artigo:', ARTICLE_URL)

  // Clicar no botão de curtir
  await page.click('a[data-tipo="like"]')
  console.log('Artigo curtido!')
}

// Função principal
const main = async () => {
  // Inicializa o Puppeteer
  const browser = await puppeteer.launch({ headless: true })
  const page = await browser.newPage()

  // Configura o viewport para formato de desktop
  await page.setViewport({
    width: 1280,
    height: 800,
    deviceScaleFactor: 1,
    isMobile: false,
  })

  // Acessa a página inicial do Viva o Linux
  await page.goto(URL)
  console.log('Extrair link dos 3 últimos artigos...')

  // Extrai os links dos artigos
  const hrefs = await extractLinks(page)

  // Curtir cada artigo usando a função likeInPage
  for (const href of hrefs) {
    await likeInPage(page, href)
  }

  // Fecha o navegador
  await browser.close()
}

// Executa a função principal
main()

Executar o script

Com o arquivo index.js criado e preenchido com o código acima, você está pronto para executar o script. No terminal, navegue até a pasta do projeto e digite o seguinte comando:

node index.js

O script será executado, e o Puppeteer irá navegar até a página inicial do Viva o Linux, extrair os links dos três últimos artigos, acessar cada artigo e clicar no botão de curtir.

Conclusão

Neste artigo, aprendemos como criar um clicador de sites com Node.js e a biblioteca Puppeteer. Demonstramos como instalar o Node.js em sistemas Debian e derivados, configurar um projeto com npm, criar e executar um script que interage com páginas web usando o Puppeteer.

Agora você tem uma base sólida para explorar mais sobre o Node.js e o Puppeteer. Você pode adaptar e expandir o código apresentado neste artigo para criar automações mais complexas e personalizadas, de acordo com suas necessidades específicas. Lembre-se de sempre respeitar as políticas de uso dos sites que você interage e garantir que suas automações sejam éticas e legais.

Vale mencionar que também é possível acessar sites que requerem credenciais usando o Puppeteer, o que amplia ainda mais suas possibilidades de automação. No entanto, abordaremos esse tópico em um próximo artigo. Por ora, explore e aperfeiçoe suas habilidades com o que aprendeu neste tutorial. Boa sorte e bons estudos!

Até a próxima!

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Desbloquear a tela do Android pelo PC (PIN)

Criando um painel de rede em PHP

Docalysis: Análise de Documentos com Inteligência Artificial

Minha caixa de ferramentas no GNU/Linux

Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota

Leitura recomendada

Automação de tarefas com Gulp

Instalando Adobe Flash 10 em distros amd64 (Ubuntu, Mandriva, Fedora)

EditorConfig - Padronização de código para seus projetos

Acessando cotações da Bovespa no Calc do LibreOffice

Camada de Transporte TCP/IP e Aplicação

  
Comentários
[1] Comentário enviado por maurixnovatrento em 14/05/2023 - 22:03h


Interessante esse artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts