Akira
Akira

Reputation: 2870

How to set the maximum number of iterations in a loop?

I'm accessing to a link in which I would like to set the number of retries to 3. This means I will exit the loop after 3 retries. Could you please elaborate on how to achieve my goal?

import requests, time
session = requests.Session()
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0'}

r = session.get('https://www.larousse.fr/conjugaison/anglais/abnegate/11338', headers = headers)
while r.status_code != 200:
    time.sleep(2)
    r = session.get(link, headers = headers) 

Upvotes: 0

Views: 699

Answers (3)

hyred-
hyred-

Reputation: 176

You could just add a second variable that counts the number of attempts:

import requests, time
session = requests.Session()
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0'}

r = session.get('https://www.larousse.fr/conjugaison/anglais/abnegate/11338', headers = headers)
tries = 0
while r.status_code != 200 and tries != 3:
    time.sleep(2)
    r = session.get(link, headers = headers)
    tries += 1

Upvotes: 1

Austin
Austin

Reputation: 26039

You can keep a counter and a loop that enables you to iterate as many times:

while r.status_code != 200 and count < 3: 

Like:

import requests, time
session = requests.Session()
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0'}

count = 1
r = session.get('https://www.larousse.fr/conjugaison/anglais/abnegate/11338', headers = headers)
while r.status_code != 200 and count < 3:
    time.sleep(2)
    r = session.get(link, headers = headers) 
    count += 1

Upvotes: 1

Alphabetus
Alphabetus

Reputation: 309

Use a counter.
while condition 1 and counter < limit

Upvotes: 1

Related Questions