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.499 ]

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

Criando um contador de downloads com PHP e MySQL

Verificando integridade de servidores POP com PHP/sockets

Implementando um tradutor de línguas no seu web site

Como criar VIEWS no MySQL

Formatando Disquetes

Leitura recomendada

Aplicações para webdesign

Diferenças de sites Web Standards

Proteja seu website ou página html com encriptaçâo

Listar dados em MySQL utilizando PHP e AJAX (parte 1)

XSS - Cross Site Scripting

  
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