[英]Python: Using if and else statements to loop
我寫了一個請求 URL 的腳本,如果響應是“CAPCHA_NOT_READY”,那么腳本應該休眠 5 秒,然后再次請求 URL。 如果響應以“OK”開頭,則腳本應繼續。
我不確定我是如何設置這個循環的。 謝謝,皮爾斯。
r = requests.get(url)
print("Sending Captcha To 2captcha")
print("Captcha ID = "+(r.text))
time.sleep(5)
url2 = "http://2captcha.com/res.php?key="+api+"action=get&id="+(r.text)[3:]
print(url2)
r = requests.get(url2)
print(r.text)
if r.text == "CAPCHA_NOT_READY":
time.sleep(5)
r = requests.get(url2)
print(r.text)
到目前為止,據我所知,您想從 url 獲取驗證碼並將其發送到 url2 並每 5 秒請求一次 url2,直到成功。
r = requests.get(url)
print("Sending Captcha To 2captcha")
print("Captcha ID = "+(r.text))
CAPTCHA_ID = r.text
time.sleep(5)
CAPTCHA_TEXT = True
while CAPTCHA_TEXT:
url2 = "http://2captcha.com/res.php?key="+api+"action=get&id="+(CAPTCHA_ID)[3:]
r = requests.get(url2)
if r.text == 'CAPCHA_NOT_READY':
time.sleep(5)
if r.text == 'OK':
CAPTCHA_TEXT = False
這將是我的方法:
r = requests.get(url)
url = ("http://2captcha.com/res.php?"
"key={api_key}&action=get&id={req_id}"
.format(
api_key=api,
req_id=r.text[3:],
))
is_capcha_ready = False
while not is_capcha_ready:
if requests.get(url).text == "CAPCHA_NOT_READY":
time.sleep(5)
else:
is_capcha_ready = True
如果請求來自請求庫,您還可以將查詢字符串作為數據關鍵字參數傳遞。
http://docs.python-requests.org/en/master/user/quickstart/#passing-parameters-in-urls
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.