xx_mola Posted October 19, 2020 at 08:39 PM Report Share #619599 Posted October 19, 2020 at 08:39 PM (edited) Estou a desenvolver um bot de whatsapp em python e queria perguntar quantos Contactos, e depois com o numero que ele disse exemplo 3 criasse 3 variáveis com inputs de "digite o contacto" Exemplo: quantos = input("Quantos contactos?:") Por exemplo: 6 con1 = input ... con2 = input ... con3 = input ... con4 = input ... con5 = input ... con6 = input ... Se ele digitasse 8 (Contactos) criava 8 variaveis: con1 = con2 = con3 = etc.. Por favor alguém me ajude Edited October 19, 2020 at 08:40 PM by xx_mola Link to comment Share on other sites More sharing options...
Gnrtuga Posted October 19, 2020 at 09:11 PM Report Share #619600 Posted October 19, 2020 at 09:11 PM Boas, assim de repente acho que podias criar um while loop para o número que o utilizador introduzir para ires buscar os valores. Para os armazenar usa por exemplo um dicionário ou uma lista. Boa sorte. Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. :) Link to comment Share on other sites More sharing options...
xx_mola Posted October 19, 2020 at 09:43 PM Author Report Share #619601 Posted October 19, 2020 at 09:43 PM (edited) Vou te enviar o código: Poderia me ajudar melhor, sou iniciante from selenium import webdriver import time mensagem = input("Digite a mensagem que quer mandar:") print() con1 = input("Digite o contacto:") con2 = input("Digite o contacto:") con3 = input("Digite o contacto:") con4 = input("Digite o contacto:") con5 = input("Digite o contacto:") class WhatsappBot: def __init__(self): self.mensagem = mensagem self.grupos = [con1, con2, con3, con4, con5] options = webdriver.ChromeOptions() options.add_argument('lang=pt') self.driver = webdriver.Chrome(executable_path=r'./chromedriver.exe') def EnviarMensagens(self): self.driver.get("https://web.whatsapp.com/") time.sleep(30) for grupo in self.grupos: grupo = self.driver.find_element_by_xpath(f"//span[@title='{grupo}']") grupo.click() time.sleep(2) barra = self.driver.find_element_by_class_name('_3uMse') barra.click() time.sleep(2) barra.send_keys(self.mensagem) enviar = self.driver.find_element_by_xpath('//span[@data-icon="send"]') enviar.click() time.sleep(2) bot = WhatsappBot() bot.EnviarMensagens() Edited October 19, 2020 at 09:46 PM by xx_mola Link to comment Share on other sites More sharing options...
Gnrtuga Posted October 20, 2020 at 06:34 AM Report Share #619603 Posted October 20, 2020 at 06:34 AM Boas, pois antes de tentares fazer coisas mais complicadas devias primeiro ver as mais simples... from selenium import webdriver import time mensagem = input("Digite a mensagem que quer mandar:") print() NumeroContatos = int(input("Digite para quantos utilizadores quer mandar a mensagem:")) #aqui vai converter o texto para número inteiro print() contador = 0 contactos = [] # Lista para onde vais enviar os contactos introduzidos while contador != NumeroContatos: #Enquanto o contador não for igual ao Numero de contactos introduzidos pelo utilizador, vai repetir contacto= int(input("Digite o contacto:")) #aqui converte o texto para número inteiro contactos.append(contacto) #adiciona o contacto à lista de contactos contador +=1 print(contactos) class WhatsappBot: def __init__(self): self.mensagem = mensagem self.grupos = contactos # aqui vais enviar a lista de contatos options = webdriver.ChromeOptions() options.add_argument('lang=pt') self.driver = webdriver.Chrome(executable_path=r'./chromedriver.exe') Não tem muito que saber, comentei o código para que percebas melhor, mas basicamente vais repetir a mensagem a pedir o contacto até ser igual ao número de contactos que o utilizador introduziu. Esses contactos são adicionados a uma lista. Na classe WhatsappBot em vez de passares os contactos um a um, como estavas a fazer, mandas logo a lista de contactos. Boa sorte. 1 Report Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. :) Link to comment Share on other sites More sharing options...
xx_mola Posted October 20, 2020 at 07:58 PM Author Report Share #619609 Posted October 20, 2020 at 07:58 PM Salvaste a minha vida ando a aprender Python ainda, não sabes como estou agradecido! Link to comment Share on other sites More sharing options...
Gnrtuga Posted October 20, 2020 at 08:09 PM Report Share #619610 Posted October 20, 2020 at 08:09 PM De nada, tens é que ver o básico e treinar, e voltar a treinar. Fica bem e boa sorte na aprendizagem. Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. :) Link to comment Share on other sites More sharing options...
xx_mola Posted October 20, 2020 at 08:12 PM Author Report Share #619611 Posted October 20, 2020 at 08:12 PM Mas há um problema quando executo o código ele não faz o input (Digite a mensagem que quer mandar) Executa com o input (Digite o contacto) Não dá os primeiros inputs Link to comment Share on other sites More sharing options...
Gnrtuga Posted October 20, 2020 at 08:22 PM Report Share #619612 Posted October 20, 2020 at 08:22 PM Experimenta meter essa parte da mensagem no fim do while onde está o print (contactos) # esqueci-me de apagar a parte do print. Se não der logo dizes que amanhã logo vejo. Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. :) Link to comment Share on other sites More sharing options...
xx_mola Posted October 20, 2020 at 08:33 PM Author Report Share #619613 Posted October 20, 2020 at 08:33 PM Não era isso, já consegui resolver troquei o int para str em "contacto= int(input("Digite o contacto:"))" e deu certo.Muito obrigado Link to comment Share on other sites More sharing options...
Gnrtuga Posted October 20, 2020 at 08:48 PM Report Share #619614 Posted October 20, 2020 at 08:48 PM não é preciso converter para string (str) porque tudo o que é introduzido pelo utilizador vem como string. Assim sendo, pode ficar só contacto=input("Digite o contacto:"), que funciona na mesma. Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. :) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now