Как перейти к недавнему сообщению из профиля в Instagram

#python #selenium #instagram

#python #селен #Instagram

Вопрос:

Итак, я пытаюсь создать программу, которая автоматически комментирует все сообщения пользователя в Instagram с помощью selenium.

Но все XPath, которые я пробовал, не переходят к своим последним сообщениям, они просто ничего не делают!

мой код:

 import os
import time
from colorama import *
from selenium import webdriver as wd
from selenium.webdriver.chrome.options import Options
import time
from time import sleep
init()

def main(username, password, target):
    while True:
        options = Options()
        options.headless = False  # Chrome Headless
        options.add_experimental_option('excludeSwitches', ['enable-logging'])
        driver = wd.Chrome('chromedriver.exe', options=options)
 
        driver.get("https://www.instagram.com/accounts/login/?source=auth_switcher")
        driver.find_element_by_xpath('/html/body/div[2]/div/div/div/div[2]/button[1]').click()
        sleep(2)
        driver.find_element_by_xpath("/html/body/div[1]/section/main/div/article/div/div[1]/div/form/div/div[1]/div/label/input").send_keys(username)
        driver.find_element_by_xpath("/html/body/div[1]/section/main/div/article/div/div[1]/div/form/div/div[2]/div/label/input").send_keys(password)
        driver.find_element_by_xpath("/html/body/div[1]/section/main/div/article/div/div[1]/div/form/div/div[3]/button").click()
        time.sleep(4)
        driver.get("https://www.instagram.com/%s/" % target)
        sleep(3)
        print("Reporting")
        driver.find_element_by_xpath("/html/body/div[1]/section/main/div/div[3]/article/div[1]/div/div[1]/div[1]/a/div[1]/div[1]")


 
 
def info():
    os.system('cls')
    print(Fore.LIGHTGREEN_EX   logo   Fore.RESET)
    username = input(Fore.LIGHTBLUE_EX   'Username: @'   Fore.LIGHTGREEN_EX)
    password = input(Fore.LIGHTBLUE_EX   'Password: '   Fore.LIGHTGREEN_EX)
    target = input(Fore.LIGHTBLUE_EX   'Target: @'   Fore.LIGHTGREEN_EX)
    main(username, password, target)
 
 
print(Fore.LIGHTGREEN_EX   logo   Fore.RESET)
info()
  

Я довольно новичок на этом сайте, пожалуйста, не обращайте внимания на это, но я делаю что-то не так или нет, и я должен делать это из их профиля или я тупой?

Ответ №1:

Попробуйте использовать режим адаптивного дизайна. CTRL-Shift-M в Windows.

Ответ №2:

во-первых, убедитесь, что ваша версия браузера Chrome совместима с драйвером chromium. во-вторых, вы указали системной переменной среды путь к chromedriver.exe

вот так;

 C:webdrivers
  

затем я запустил этот код;

 from selenium import webdriver
from time import sleep



class igBot():
    def __init__(self):
        self.driver = webdriver.Chrome()

    def login(self):
        self.driver.get("https://www.instagram.com")
        sleep(4)
        email_in = self.driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[1]/div/label/input')
        email_in.send_keys("username")
        password_in = self.driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[2]/div/label/input')
        password_in.send_keys("password")
        log_in = self.driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[3]/button')
        log_in.click()
        
        #Save Your Login Info?
        self.driver.find_element_by_xpath('//*[@id="react-root"]/section/main/div/div/div/div/button').click()    
        #turn on notification                                  
        self.driver.find_element_by_xpath('/html/body/div[4]/div/div/div/div[3]/button[2]').click()

        while True:     
            self.driver.execute_script("window.scrollTo(10, document.body.scrollHeight);")
            self.driver.find_element_by_xpath('//*[@id="react-root"]/section/main/section/div/div[3]/div/article[4]/div[3]/section[1]/span[1]/button/div').click()
            

        sleep(9)

bot = igBot()
bot.login()
  

попробуйте заменить xpath этим фрагментом кода. (иногда это работает не так, как обычно)