Python Selenium instagram bot нажав на ту же картинку - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь набрать #likeforfollow в строке поиска, которая прошла успешно. Затем я попытался использовать цикл for, чтобы нажимать на каждое изображение, но оно просто щелкает одно и то же изображение каждый раз. Я хочу кликнуть на каждую картинку, вот мой код:

for pic in driver.find_elements_by_class_name('eLAPa'):
    driver.find_element_by_xpath('''//*[@id="react-root"]/section/main/article/div[1]/div/div/div[1]/div[3]/a/div''').click()
    driver.find_element_by_xpath("""/html/body/div[3]/div/button""").click()

1 Ответ

0 голосов
/ 29 октября 2018

В качестве примера проверьте этот код:

browser = webdriver.Chrome()

browser.get('https://www.instagram.com/accounts/login/')
wait = WebDriverWait(browser, 5)
wait.until(EC.presence_of_element_located((By.XPATH, '//input[@name="username"]'))).send_keys('USERNAME')
browser.find_element_by_xpath('//input[@type="password"]').send_keys('PASSWORD')
browser.find_element_by_xpath('//button[contains(text(), "Log in")]').click()

browser.get('https://www.instagram.com/explore/tags/likeforfollow/')
for i in range(10):
    browser.execute_script('window.scrollTo(0, document.body.scrollHeight);')
    time.sleep(1)

pics = wait.until(EC.presence_of_all_elements_located((By.XPATH,     '//a[contains(@href, "tagged=likeforfollow")]')))
links = [pic.get_attribute("href") for pic in pics]
for link in links:
    browser.get(link)
    wait.until(EC.presence_of_element_located((By.XPATH, '//button[contains(@class, "coreSpriteHeartOpen")]'))).click()

browser.close()

Импорт:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time

Добро пожаловать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...