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: 1.781 ]
Por: Fábio Berbert de Paula em 01/04/2023 | Blog: https://mestrefabio.com
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()
Convertendo Texto em Fala com Python e pyttsx3
Enviando mensagens de WhatsApp no Linux usando Shell Script e ADB
Conheça o Viva o Android, site coirmão do VOL
Tasker - Como fazer um ANDROID falante
Select dinâmico com PHP, Javascript e MySQL
Verificando a consistência de CPF e CNPJ em um formulário com JavaScript
Entendendo validações e operações aritméticas com Javascript
Banda Larga é um direito de todos!
Formulários HTML: Problemas com campos desabilitados?
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Instalando Discord no Fedora 40
Instalando Discord no Ubuntu 24.04 LTS
Como instalar o XFCE4-terminal na sua distribuição Linux e integrá-lo ao sistema
Como instalar o Tilix Terminal no Gnome e usá-lo como menu drop-down ao estilo Quake
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (44)
Permissão de acesso a pastas do File server no Ubuntu-Server 22.04 [RE... (9)
BUG ao atualizar pacotes libglib2.0-0 libglib2.0-bin libglib2.0-data (13)
Apos atualizaçao do Debian 11 - problema com acentos/teclado [RESOLVID... (3)
Problemas na configuração da acentuação do meu teclado ABNT2 (11)