Reputation: 2870
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
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
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