Saltar a contenido

InstagramBot

from selenium import webdriver
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import undetected_chromedriver as webdriver
import csv


def login():
    chrome_options = webdriver.ChromeOptions()

    prefs = {"profile.default_content_setting_values.notifications": 2}

    chrome_options.add_experimental_option("prefs", prefs)

    browser = webdriver.Chrome(chrome_options=chrome_options)

    browser.implicitly_wait(5)

    browser.get('https://www.instagram.com/')

    with open("cookies.txt", "r", encoding="utf8") as cookie_file:
        tsv_reader = csv.reader(cookie_file, delimiter="\t")

    # Skip the first row, which is the header
        next(tsv_reader)

        for row in tsv_reader:
            (Domain, Include_subdomains, Path, Secure, Expiry, Name, Value) = row
            browser.add_cookie(
                {"name": Name, "value": Value, "path": Path, "domain": Domain})

    browser.get('https://www.instagram.com/')

    wait = WebDriverWait(browser, 10)

    notifications = wait.until(
        EC.element_to_be_clickable((By.CLASS_NAME, "_a9_1")))
    notifications.click()
    return browser


def savePosts(session, number_of_likes):

    print(number_of_likes)
    postsToSave = session.find_elements(By.CLASS_NAME, "_aamz")
    i = 0
    for postToSave in postsToSave:
        if i < 4:
            postToSave.click()
            i += 1
        else:
            return 0
        print(i)


session = login()
number_of_likes = int(input("Number of post to save: "))

savePosts(session, number_of_likes)

Última actualización: November 8, 2022