Инстаграмма Python Селен Chromeriver продолжает запрашивать код в смс - PullRequest
0 голосов
/ 25 апреля 2019

Кто-нибудь сталкивался с проблемой, что в последнее время стало трудно запускать процедуру автоматизации для Instagram, написанного на python с использованием селенового хромедривера, потому что instagram продолжает запрашивать код, который отправляет в SMS или электронной почте?

Когда вы входите в обычный браузер, он запрашивает код в смс только один раз. Но когда вы делаете это с селеном, он просит об этом каждый раз.

Вот код

options = webdriver.ChromeOptions()
        #options.add_argument('headless')
        #options.add_argument('--headless')
        options.add_argument('--disable-logging')
        options.add_argument('--log-level=3')
        driver = webdriver.Chrome(chrome_options=options)
        #driver = webdriver.Chrome()
        print('Driver started successfully!')

        driver.get("https://instagram.com/")    
        time.sleep(6)

        pg=driver.find_element_by_tag_name("html")
        lng=pg.get_attribute("lang")
        #print(lng)
        if lng=='en':
            global lin
            global foll
            global foll_tx
            global subscr_tx
            lin="Log in"
            foll="followers"
            foll_tx="Follow"
            subscr_tx="following"

get_enter_bt

 = driver.find_elements_by_link_text(self.lin)
            lin_found=False
            while not lin_found:
                if len(get_enter_bt)==0:
                    print('Login not found ((( Refreshing...')
                    driver.refresh()
                    time.sleep(6)
                    get_enter_bt = driver.find_elements_by_link_text(self.lin)
                else:
                    lin_found=True
                    print('Login button found!')
            time.sleep(3)
            get_enter_bt[0].click()
            time.sleep(3)

            #login
            login = driver.find_element_by_name("username")
            login.send_keys(username)
            login = driver.find_element_by_name("password")
            login.send_keys(password)
            login.send_keys(Keys.RETURN)

time.sleep(9)

            get_close_mobapp=driver.find_elements_by_css_selector("button._dbnr9")
            if len(get_close_mobapp)!=0:
                get_close_mobapp[0].click()

            notif_switch=driver.find_elements_by_css_selector("button.aOOlW.HoLwm")
            print('notif butt %s' % len(notif_switch))
            if len(notif_switch)>0:
                notif_switch[0].click()
            print(1)
            #detect suspicious login
            susp_login_msg=driver.find_element_by_xpath("//*[@id=\"react-root\"]/section/div/div/div[1]/div/p")#<p class="O4QwN">Подозрительная попытка входа</p>
            print('susm login msg %s' % (susp_login_msg!=None))
            if susp_login_msg:
                if susp_login_msg.text=='Подозрительная попытка входа':
                    try:
                        mobile_button = driver.find_element_by_xpath("//*[@id=\"react-root\"]/section/div/div/div[3]/form/div/div[2]/label")
                        mobile_button.click()
                    except:
                        mobile_button = driver.find_element_by_xpath("//*[@id=\"react-root\"]/section/div/div/div[3]/form/div/div[1]/label")
                        mobile_button.click()
                    snd_code_btn=driver.find_element_by_xpath("//*[@id=\"react-root\"]/section/div/div/div[3]/form/span/button")
                    snd_code_btn.click()

                    print('Instagram detected an unusual login attempt')
                    print('A security code was sent to your mobile '+mobile_button.text)
                    security_code = input('Type the security code here: ')

                    #security_code_field = driver.find_element_by_xpath(("//input[@id='security_code']"))
                    security_code_field.send_keys(security_code)

------------

Этот код работает нормально, но как остановить instagram от запроса кода в смс каждый раз? Обнаруживает ли я, что я запускаю селен и выполняю антиботовую активность?

Я запускал сценарий по расписанию, например, для выполнения серии лайков для моих подписчиков, что, как вы знаете, отнимает много времени, и автоматизация была моим выходом)))

...