Estou editando essa script que encontrei em um canal no youtube para ela curtir fotos no automático, ela funciona tudo, vai até o post que eu quero e abre a imagem, passa imagem por imagem porem não curte a foto e o erro está aqui até onde eu sei...
Não consigo fazer ele clicar no botão para curtir esse é o unico erro, sou novo em python e agradeceria muito se alguém pudesse me ajudar a passar esse obstáculo.
SCRIPT INTEIRA
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import random
class InstagramBot:
def __init__(self, username, password):
self.username = username
self.password = password
self.driver = webdriver.Firefox(
executable_path=r"C:\\Users\\alexs\\Desktop\bot\\driver\\geckodriver.exe"
) # Coloque o caminho para o seu geckodriver aqui
def login(self):
driver = self.driver
driver.get("https://www.instagram.com")
time.sleep(3)
try:
login_button = driver.find_element_by_xpath(
"//a[@href='/accounts/login/?source=auth_switcher']"
)
login_button.click()
except:
print('já estamos na página de login')
pass
user_element = driver.find_element_by_xpath(
"//input[@name='username']")
user_element.clear()
time.sleep(random.randint(4, 6))
user_element.send_keys(self.username)
time.sleep(random.randint(4, 6))
password_element = driver.find_element_by_xpath(
"//input[@name='password']")
password_element.clear()
password_element.send_keys(self.password)
time.sleep(random.randint(4, 6))
password_element.send_keys(Keys.RETURN)
time.sleep(random.randint(4, 6))
self.curtir_fotos_com_a_hastag(
"programação"
) # Altere aqui para a hashtag que você deseja usar.
@staticmethod
def type_like_a_person(sentence, single_input_field):
""" Este código irá basicamente permitir que você simule a digitação como uma pessoa """
print("going to start typing message into message share text area")
for letter in sentence:
single_input_field.send_keys(letter)
time.sleep(random.randint(1, 5) / 30)
def curtir_fotos_com_a_hastag(self, hashtag):
driver = self.driver
driver.get("https://www.instagram.com/explore/tags/" + hashtag + "/")
time.sleep(5)
for i in range(
1, 3
): # Altere o segundo valor aqui para que ele desça a quantidade de páginas que você quiser: quer que ele desça 5 páginas então você deve alterar de range(1,3) para range(1,5)
driver.execute_script(
"window.scrollTo(0, document.body.scrollHeight);")
time.sleep(3)
hrefs = driver.find_elements_by_tag_name("a")
pic_hrefs = [elem.get_attribute("href") for elem in hrefs]
print(hashtag + " fotos: " + str(len(pic_hrefs)))
testes = [
href
for href in pic_hrefs
if hashtag in href and href.index("https://www.instagram.com/p") != -1
]
for pic_href in pic_hrefs:
try:
pic_href.index("https://www.instagram.com/p")
except ValueError as err:
print("pulando link inválido")
continue
driver.get(pic_href)
driver.execute_script(
"window.scrollTo(0, document.body.scrollHeight);")
try:
driver.find_element_by_xpath('//button[@class="dCJp8 afkep"]').click()
time.sleep(random.randint(19, 23))
except Exception as e:
print(e)
time.sleep(5)
jhonatanBot = InstagramBot(
"login", "senha"
) # Entre com o usuário e senha aqui
jhonatanBot.login()
Pergunta
Zoik
Estou editando essa script que encontrei em um canal no youtube para ela curtir fotos no automático, ela funciona tudo, vai até o post que eu quero e abre a imagem, passa imagem por imagem porem não curte a foto e o erro está aqui até onde eu sei...
Não consigo fazer ele clicar no botão para curtir esse é o unico erro, sou novo em python e agradeceria muito se alguém pudesse me ajudar a passar esse obstáculo.
SCRIPT INTEIRA
Editado por ZoikLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.