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.957 ]
Por: Fábio Berbert de Paula em 01/04/2023 | Blog: https://fabio.automatizando.dev
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()
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Edital de política de contribuição de artigos
tux-gpt - Assistente de IA para o Terminal
A trajetória do Viva o Linux - retrospectiva 2003/2004
Criando Aplicativos Mobile com React Native
DesignCap - Ferramenta de design gráfico para leigos
Camada de Transporte TCP/IP e Aplicação
Formulários HTML: Problemas com campos desabilitados?
MathML - Mathematical Markup Language
Instalar e Configurar a santíssima trindade (PAP) no Void Linux
O Editor de Texto Nano: Simplicidade no Terminal
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
[Resolvido] Meu monitor suporta 100fps. Por que o máximo é 60fps nos jogos?
Jogando "Magic" gratuitamente no Linux
Zoxide e fzf no bash para incrementar o uso do Terminal
[pedido] biglinux versao 1 (0)
A falsa sensação de que entende a tal da palavra! (1)
Eu aprendi o segredo das artes! hahaha (5)









