Python 我怎样才能摆脱循环?
所以我一直在试着用监视器玩abit——对于那些不知道监视是什么的人来说——基本上它的意思是,你在某个时间检查一些东西,比如元素、url或其他什么,然后再次检查它是否被更改了 这就是我所做的和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
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))