Селен вебдрайвер | отписаться от всех друзей в социальной сети

Есть ли у вас идеи, почему за всеми отписываются только 15 человек?

Вам нужен аккаунт в Instagram для запуска этого скрипта.

например:
если ваша учетная запись chrome1, то этот скрипт будет работать на
https://www.instagram.com/chrome1/following/

for ns in driver.find_elements_by_class_name("_6jvgy"):
    try:
        ns.find_element_by_class_name("_r4e4p").click() # unFollow button!!!

        # time.sleep(2) # the same as without sleep  

        unfollow_nick = ns.find_element_by_class_name("notranslate").get_attribute("title")
        print(unfollow_nick) # now: prints all, but really unfollow only 15. 

    except:
        pass

этот вопрос является продолжением предыдущего: Scroll in Selenium Webdriver (Python)

весь код, необходимый для запуска: https://ideone.com/wYjHW4

1 ответ

self.driver.implicitly_wait(10)
        scroll_boX = self.driver.find_element_by_xpath("/html/body/div[5]/div/div/div[2]/div")
        last_ht, ht = 0, 1
        #last_bt, bt = 1, 1
        while last_ht != ht:
            last_ht = ht
           # last_bt = bt
            sleep(2) 
            ht = self.driver.execute_script("""
                arguments[0].scrollTo(0, arguments[0].scrollHeight); 
                return arguments[0].scrollHeight;
                """, scroll_box)
            sleep(2)

Это скорость запросов (постоянно нажимая на Following кнопка), что заставляет сервер Instagram отклонять / игнорировать большинство запросов.

Добавьте время сна перед каждым запросом.

В своем коде вы импортировали sleep метод. так что напрямую используйте sleep(2) но нет time.sleep, который выдает исключение, и вы захватываете его и обойдете его, используя pass ключевое слово, поэтому вы не знаете об этом исключении. Я предлагаю распечатать исключение, а затем использовать pass ключевое слово.

for ns in driver.find_elements_by_class_name("_6jvgy"):
    try:
        ns.find_element_by_class_name("_r4e4p").click() # unFollow button!!!

        sleep(2) # works now 

        unfollow_nick = ns.find_element_by_class_name("notranslate").get_attribute("title")
        print(unfollow_nick) # now: prints all, but really unfollow only 15. 

    except:
        pass
Другие вопросы по тегам