Python - 在命中if-else语句时打印一次

时间:2018-06-18 09:16:18

标签: python if-statement while-loop logic

所以我一直试图用监视器来玩游戏 - 对于那些不知道监控是什么的人 - 基本上它意味着你在某个时间检查某些东西等元素,网址或其他东西并检查再次,如果它已经改变。

我想要做的是该程序从一开始就要求获取网站URL - 该网址将自动重定向到/密码或没有它。

然后我要做的是检查密码是否包含URL - 如果是这样的话。打印出密码页面打开然后发送到discord,只有它可以打印出密码页面是命令,但它应该只打印出不和谐 ONCE!

如果密码从/密码更改为无密码,则相反 - 它应该说密码页面已关闭,然后打印出它已关闭并发送到discord ONCE 已经关闭

这就是我所做的和

url =' mrcnoir'

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

        except:
            print('Error checking password page! - https://{}.com'.format(url))
            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 to discord---**************

                            print("SENDING...1") #Discord function will be added later

                            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") #Discord function will be added laterthis print...

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

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

我现在遇到的问题是它永远不会进入其他功能中的 if语句 ,这意味着它永远不会出现"发送到不和谐& #34;功能 ...

我怎样才能让它经历所以它发送到我的不和谐(现在不需要任何功能,现在函数内部的简单打印就好了)只有一次

可能是因为我把if语句弄错了......

更新:

对不起,我可能已经累了,我刚刚做了这个,我想我现在可能已经做好了

url = 'mrcnoir'
password = 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):
                        # Password page is up
                        if password != True:
                          password = True
                          print('Password page is up! - ' + 'https://{}.com'.format(url))

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

                         # No password page -> password page

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

1 个答案:

答案 0 :(得分:0)

可以打印raise_for_status()返回的值并查看它返回的内容吗?因为成功点击它会返回None,它永远不会进入第一个if的{​​{1}}块。请在此处阅读:quickstart python requests

else

输出:

import requests

url = 'https://mrcnoir.com'

res = requests.get(url)
print(res.raise_for_status())
print(res.status_code)