Instruções para aquisição

Instale o zBot (para Windows). Rode este sistema no seu computador e vários outros que podem ser baixados diretamente pelo zBot ou criados por você mesmo(a)!

Detalhes do Sistema

Extrair e validar grupos

04/12/2023 | Build: 87
Do pacote: Gestão de grupos Whats

Descrição: Funções para localizar e extrair da web links de convite para grupos do Whatsapp. Possui também funções para validar se os links estão ativos

Tutorial em Vídeo

Código do script

Este script também pode ser baixado diretamente pelo software zBot
&CriarBotao("Abrir Whatsapp PC";"abrir whatsapp pc";200) //*
&CriarBotaoPopup("Extração de grupos...";"Configurar extração, Extrair grupos, Validar links dos grupos";"configurar extração, extrair grupos, validar grupos") //*
&CriarBotaoPopup("Grupo...";"Abrir grupo selecionado na tabela, Ir ao próximo grupo da tabela, Ver grupo, ";"abrir grupo, próximo grupo, entrar na conversa") //*
&CriarBotao("Zerar status";"zerar status";200) //*


#zerar status
   &TbComando("primeiro")[0]
   &marcador("zerar status")
   &TbValorDefinir("status"; "")[0] //*
   &TbComando("próximo")[0]
   &Se([último resultado];igual;"OK")
      &VaiPara("zerar status")
   .fimse   
   &TbComando("primeiro")[0]   
#


// Abre o próximo grupo ativo
#próximo grupo   
   &Marcador("próximo_loop")
   &TbComando("próximo")[0]
   &TbLerCampo("ativo")[0] //*   
   
   &Se([ativo];igual;"não")
      &VaiPara("próximo_loop")
   .fimse
   
   &TbLerCampo("url")[0] //*
   &Se([url];igual;"")
      &VaiPara("próximo_loop")
   .fimse   
      
   &BlocoExec("abrir grupo")[0] //*
#

// entra no grupo que estiver em "url"
#abrir grupo
   &TbLerCampo("url")[0] //*
   &Se([url];igual;"")
      &Mensagem("Só pode abrir grupos com links")
   .senao
      &NavegadorIr([url])[0] //*
      &NavegadorPosicionar(0;0;750;650)[0] //* topo, esquerda, largura, altura
   .fimse      
#

// Precisa do Whatsapp PC instalado. Entra no grupo
#entrar na conversa   
   &NavegadorClicarPerguntar(11208104440057;"Local do botão 'Entrar na conversa'")[2] //*
   [whatsapp_url] = "whatsapp://"
   &ExecutarComando([whatsapp_url])[1.5]        
   &DigitarTab()[2]
   &DigitarEnter()[2]      
#

// Valida se os grupos da tabela existem
#validar grupos
   &TbComando("primeiro")[0] //* primeiro, anterior, próximo, último, apagar
   &Marcador("validar_loop")
   &TbLerCampo("url")[0] //*
   
   &Se([url];igual;"")
      &VaiPara("validar_pular")
   .fimse
   
   &Se([ativo];diferente;"")
      &VaiPara("validar_pular")
   .fimse
      
   &URLBaixar([url];"conteúdo") //*
   &TextoTem([conteúdo];"_0dVljceIA5.png";"retorno")[0] //* Retorna sim | não
   &Se([retorno];igual;"sim")                             
      &TbValorDefinir("obs"; "inválido")[0] //*
      &TbValorDefinir("ativo"; "não")[0] //*      
   .senao
      //&TextoSalvar([conteúdo]; "c:\temp\temp_conteudo.txt")[2] //*
      //&ExecutarComando("notepad.exe c:\temp\temp_conteudo.txt")[0]
      //&ScriptEncerrar()         
      &TextoEntre([conteúdo];"og:title";"#-/";"nome")[0] //*
      &TextoDecodificarHTML([nome]; "nome")[0] //*
      &TextoRemoverEspeciais([nome];"nome")[0] //*
      &TextoSubstituir([nome]; "*aspas*"; ""; "nome")[0] //*
      &TextoSubstituir([nome]; "content"; ""; "nome")[0] //*
      &TextoRemoverFim([nome]; "/"; "nome")[0] //*

      //&TextoSubstituir([nome]; " /"; ""; "nome")[0] //*           
      &TbValorDefinir("ativo"; "sim")[0] //*
      &TbValorDefinir("nome"; [nome])[0] //*         
   .fimse   
   &Marcador("validar_pular")
   &TbComando("próximo")[0] //* primeiro, anterior, próximo, último, apagar
   &Se([último resultado];igual;"OK")
      &VaiPara("validar_loop")
   .fimse   
#

#configurar extração
    &ValorPedirVarios("Configurações"; "termo de busca,ignorar se tiver")[0] //*
#

#extrair grupos
// definie variáveis de controle para o extrator de dados saber se é para extrair emails ou telefones
[modo extracao] = "grupos"
&BlocoExec("processar extração")[0] //*
#

// Faz a busca para um termo de busca
#processar extração
    &TextoQtdLinhas([termo de busca]; "qtd termos")[0] //*      
    [inseridos] = 0
    &TextoObterDataHora("hoje")[0] //*
    &TextoDataInfo([hoje]; "secao_data"; "hoje")[0] //* valor -#-/ ano, mês, dia, hora, minuto, segundo, dia_semana, secao_data, secao_hora
    &TextoGerarIdUnico("id único")[0] //*
        
    &Progresso2Iniciar("Termos";[qtd termos])[0] //*    
    &Repetir([qtd termos])
       [links] = ""
       // Primeiro faz a busca       
       [termo atual] = [termo de busca*[_indice]]
       &Progresso2Inc(1)[0] //*       
       &StatusInserir("Efetuando busca: [termo atual]";"importante")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
       &BlocoExec("efetuar busca")[0] //* os dados vão para "conteúdo"
       &StatusInserirExtra("OK";"sucesso")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
       
       // Aproveita e extrai e-mails na própria página de busca
       &StatusInserir("Obtendo links da página de resultado...";"preto")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
       [link atual] = "Resultado da busca: [termo de busca]"
       [dados] = [conteúdo]        
       &BlocoExec("extrair dados")[0] //* os dados vão para "links"                        
    .fimrepetir   
    &StatusInserir("Fim do processamento";"importante")[0]
    &StatusInserir("Total de links inseridos: [inseridos]";"preto")[0]       
#

// - - - - - - - - - - -

// Efetua uma busca e coloca os dados na variável "conteúdo"
#efetuar busca
    [conteúdo] = "" 
    [link de busca] = "https://www.google.com.br/search?num=100&site=&source=hp&q=chat.whatsapp.com [termo atual]"    
    &URLBaixar([link de busca];"conteúdo") //*
    [link de busca] = "https://www.google.com.br/search?num=100&start=100&site=&source=hp&q=chat.whatsapp.com [termo atual]"
    &URLBaixar([link de busca];"conteúdo2") //*
    [conteúdo] = "conteúdo [conteúdo] [conteúdo2]"        
#

// Extrai emails da variável "dados" e insere na tabela os que não existirem
#extrair dados
    &TextoExtrairContendo([conteúdo]; "chat.whatsapp.com"; "dados"; "")[0] //*        
        
    &TextoQtdLinhas([dados]; "qtd")[0] //*
    &Repetir([qtd])
      [info] = [dados*[_indice]]      
      &Se([info];diferente;"") 
         &TextoTemValorLista([info];[ignorar se tiver];"localizou")[0] //* Retorna sim | não
         &Se([localizou];diferente;"sim")  
            &TbLocalizar("url";[info]; "localizou")[0] //*         
            &Se([localizou*url];diferente;[info])    
               [info] = "https:[info]"
               
               &TextoTerminaCom([info];".";"retorno")[0] //* Retorna sim | não
               &Se([retorno];igual;"sim")
                  &VaiPara("saiu")
               .fimse
               
               &TextoTem([info];"https://chat.whatsapp.com";"retorno")[0] //* Retorna sim | não
               &Se([retorno];diferente;"sim")
                  &VaiPara("saiu")
               .fimse      
               
               &Se([info];igual;"https://chat.whatsapp.com")
                  &VaiPara("saiu")
               .fimse                                        
      
               &TbInserir("url,obs,data_cadastro,id_unico";"[info],[termo atual],[hoje],[id único]")[0] //*
               &ValorInc("inseridos";1)[0] //*
               &StatusInserir("Inserido: [info] (total: [inseridos])";"sucesso")[0]
               
               &Marcador("saiu")
            .senao
               &StatusInserir("Já tem no banco: [info]";"erro")[0]   
            .fimse
         .senao
            &StatusInserir("Lista de exclusão: [info]";"erro")[0]         
         .fimse      
      .fimse       
    .fimrepetir
#
   
#abrir whatsapp pc
   [whatsapp_url] = "whatsapp://"
   &ExecutarComando([whatsapp_url])[1]
   &JanelaAtivaPosicionar(10;10;900;600)[0] //* topo, esquerda, largura, altura
#

Termos gerais dos scripts

Os scritps gratuitos ou pagos tem como objetivo disponibilizar funções ou demonstrar possíveis aplicações que podem ser criadas usando a linguagem de programação de scripts do zBot.
Seu código-fonte é fornecido e pode ser livremente estudado, adaptado ou alterado pelo usuário que o adquire. Eventualmente são usados links ou exemplos de funções interagindo com sistemas ou sites populares, mas o zBot não tem nenhum vínculo, propriedade nem parceria com quaisquer produtos de terceiros, nem se responsabiliza por nenhuma consequência de sua utilização, cabendo exclusivamente ao usuário a total responsabilidade sobre isso, sempre levando em conta a licitide de sua aplicação e eventuais termos de uso ou propriedade de terceiros que devam ser considerados.
 Fale conosco