Первый скрипт для автоматизации instagram, как зациклить остальное внутри цикла for? - PullRequest
0 голосов
/ 21 октября 2019

Привет всем, кто первый раз читал постеры в долгосрочной перспективе.

Моя проблема в том, что я хочу, чтобы стат цикла else был внутри цикла for.

Я хочу, чтобы стат цикла else был до цикла if. выше он встречается?

Может кто-нибудь сказать мне, где я иду не так? Я перепробовал так много разных способов, включая циклы while внутри, если инструкции не могут обойти меня?

edit изменил кодк циклу while, который не включен в чернослив, но не может выйти из цикла while

for url in results:
    webdriver.get(url)
    try:
        liked = webdriver.find_elements_by_xpath("//span[@class=\"glyphsSpriteHeart__filled__24__red_5 u-__7\" and @aria-label=\"Unlike\"]")
        maxcount = 0   

        while not liked:
            sleep(1)
            webdriver.find_element_by_xpath('//span/button/span').click()
            numberoflikesgiven += 1
            maxcount += 1
            print'number of likes given : ',numberoflikesgiven
            sleep(2)
            webdriver.find_element_by_link_text('Next').click()

            if maxcount >= 10:
                print('max count reached .... moving on.')
                continue



        else:
            print ('picture has already been liked...')
            continue    

1 Ответ

0 голосов
/ 21 октября 2019

Да, вы очень четко написали бесконечный цикл:

while not liked:
    ... # no assignments to "liked"

Вы не меняете значение liked в любом месте цикла. Вы не break цикл. Таким образом, у вас есть бесконечный цикл. Вам нужно переоценить liked на каждой итерации. Типичный способ сделать это - продублировать оценку в нижней части цикла

        sleep(2)
        webdriver.find_element_by_link_text('Next').click()
        liked = webdriver.find_elements_by_xpath(
            "//span[@class=\"glyphsSpriteHeart__filled__24__red_5 u-__7\" \
            and @aria-label=\"Unlike\"]")

Также обратите внимание, что ваш continue ничего не делает, так как он находится в нижней части цикла. Просто позвольте вашему коду естественным образом достичь дна, и вместо этого пока будет will continue on its own. If you intended to go to the next iteration of для URL в результатах , then you need to прервите цикл 1013 * пока`.

...