Python 我怎样才能摆脱循环?

Python 我怎样才能摆脱循环?,python,loops,Python,Loops,所以我一直在试着用监视器玩abit——对于那些不知道监视是什么的人来说——基本上它的意思是,你在某个时间检查一些东西,比如元素、url或其他什么,然后再次检查它是否被更改了 这就是我所做的和 url = 'mrcnoir' while True: try: password_page = requests.get('https://{}.com'.format(url), timeout=5) password_page.rais

所以我一直在试着用监视器玩abit——对于那些不知道监视是什么的人来说——基本上它的意思是,你在某个时间检查一些东西,比如元素、url或其他什么,然后再次检查它是否被更改了

这就是我所做的和

url = 'mrcnoir'

while True:
        try:
            password_page = requests.get('https://{}.com'.format(url), timeout=5)
            password_page.raise_for_status()

        except requests.exceptions.RequestException as err:
            print('Error checking password page! - https://{}.com'.format(url) + ' - ' + str(err))
            continue



        else:
            # *************---If password up---**************

            if ('password' in password_page.url):
                        # Password page is up
                        print('Password page is up! - ' + 'https://{}.com'.format(url))
                        if not ('password' in password_page.url):

                            # No password page -> password page


                            # *************---Send---**************

                            print("SENDING...1")

                            time.sleep(random.randint(6, 12))


            # *************---If password down---**************

            else:
                # Password page is down
                print('Password page is down! - ' + 'https://{}.com'.format(url))
                if ('password' in password_page.url):

                    # Password page -> no password page


                    # *************---Send---**************

                    print("SENDING...2") #<---- If it comes in here - it will be stuck forever and just keep posting this print...
                    time.sleep(random.randint(6, 12))

        # *************---Retry between 6-12 random.---**************
        finally:
            time.sleep(random.randint(6, 12))
url='mrcnoir'
尽管如此:
尝试:
password_page=requests.get('https://{}.com'。格式(url),超时=5)
密码\u页面。为\u状态()引发\u
除了requests.exceptions.RequestException作为错误:
打印('检查密码页时出错!-https://{}.com'。格式(url)+'-'+str(err))
持续
其他:
#***********---如果密码已设置---**************
如果('password'在password_page.url中):
#密码页已打开
打印('密码页已打开!-'+'https://{}.com'。格式(url))
如果不是(“密码”页面中的“密码”):
#无密码页->密码页
#***********---发送---**************
打印(“发送…1”)
时间。睡眠(随机。随机数(6,12))
#*********---如果密码已关闭---**************
其他:
#密码页已关闭
打印('密码页已关闭!-'+'https://{}.com'。格式(url))
如果('password'在password_page.url中):
#密码页->无密码页
#***********---发送---**************
打印(“发送…2”)35;
导入请求
随机输入
导入时间
url='1〕https://mrcnoir.com/account/login'
errState=False
尽管如此:
尝试:
password_page=requests.get({}.format(url),timeout=5)
密码\u页面。为\u状态()引发\u
除了requests.exceptions.RequestException作为错误:
如果没有,请说明:
打印('检查密码页时出错!-{}'。格式(url)+'-'+str(err))

打印(“发送…2”)#您不应该检查回复文本吗。。。如果您的语句没有意义,请使用password_page.text代替urleither@user2413548我之所以有另一个原因是,我想知道页面何时打开,何时关闭。该计划是在以后每当密码上下浮动时通过discord通知我,这就是为什么我有if和else语句的原因。-这就是为什么我现在想知道我怎样才能在发送1和发送2时发送打印,而不会在彼此内部有一个卡住的循环。-另外,我确定我想使用URL,因为更改将来自URL,而不是文本本身。另一个原因是我想知道页面何时打开,何时关闭。该计划是在以后每当密码上下浮动时通过discord通知我,这就是为什么我有if和else语句的原因。-这就是为什么我现在想知道我如何能够在发送1和发送2时发送打印,而不会在彼此内部有一个卡住的循环。你确定吗,我的意思是,打印后,它会一直打印,还是只是循环并检查新的更新?好的,对“循环卡住”的不同解释。。。在这种情况下,你需要跟踪该州,在这种情况下,你会建议我做什么因为基本上我的想法是,如果有密码。。。只需更新直到密码消失-然后用打印通知我密码已被删除。之后,更新站点并等待直到密码更改为password up。然后通知并继续这样。添加了errState,这将使它只显示一次消息,但这意味着它每次都会打印出“密码已关闭”,不是吗?不,不是。你试过了吗?我试过了,我可以说它确实打印出了密码每次都是关闭的,在这种情况下,mrcnoir也是。我希望只做一次——意思是等它是mrcnoir.com/password,每当它只转到mrcnoir.com时——它应该用打印通知我,并且只做一次。。这意味着它下一步要做的事情是请求并查看何时出现密码,意思是mrcnoir.com/password,一旦它点击它,它应该打印出来,并在这样的循环中。这正是代码所做的。它仅在状态发生更改时发出通知:密码->无密码,或无密码->密码。如果这不是你想要的,那么你需要以另一种方式重申你的问题。不,你是正确的方式-问题是,每当我使用你的代码-当它点击elif语句-它会打印出密码页面每次都关闭,这很好-但是如果我想让它只发送一次,而不是一直发送呢?想象一下,得到大量的指纹而不是只知道一次。
import requests
import random
import time

url = 'https://mrcnoir.com/account/login'
errState = False

while True:
    try:
        password_page = requests.get('{}'.format(url), timeout=5)
        password_page.raise_for_status()

    except requests.exceptions.RequestException as err:
        if not errState:            
            print('Error checking password page! - {}'.format(url) + ' - ' + str(err))
            print("SENDING...2")   # <-----------------
            errState = True
        continue

    else:
        # *************---If password up---**************

        if ('password' in password_page.text):
            # Password page is up
            print('Password page is up! - ' + '{}'.format(url))
            print("SENDING...1")
            errState = False


        #else:
        #    # Password page is down ???
        #    # this is not a useful test, if it is down you get an exception and
        #    # should handle it there
        #    print('Password page is down! - ' + '{}'.format(url))
        #    print("SENDING...2") #<---- If it comes in here - it will be stuck forever and just keep posting this print...

    # *************---Retry between 6-12 random.---**************
    finally:
        time.sleep(random.randint(6, 12))
url = 'mrcnoir'
last_status = False
while True:
        try:
            password_page = requests.get('https://{}.com'.format(url), timeout=5)
            password_page.raise_for_status()

        except requests.exceptions.RequestException as err:
            print('Error checking password page! - https://{}.com'.format(url) + ' - ' + str(err))
            continue

        else:
            # *************---If password up---**************

            if 'password' in password_page.url and last_status == False:
                # Password page is up
                last_status = True
                print('Password page is up! - ' + 'https://{}.com'.format(url))

                time.sleep(random.randint(6, 12))


            # *************---If password down---**************

            elif not 'password' in password_page.url and last_status == True:
                # Password page is down
                last_status = False
                print('Password page is down! - ' + 'https://{}.com'.format(url))
                time.sleep(random.randint(6, 12))

        # *************---Retry between 6-12 random.---**************
        finally:
            time.sleep(random.randint(6, 12))