Max retries exceeded with URL is a common error, you will encounter it when using requests library to make a request. The error indicates that the request cannot be made successfully.
To fix max retries exceeded with URL in Python requests, we can set the retries when making a request with requests . to create a HTTPAdapter with the max_retries set to the Retry object. We set the Retry to max 3 retries and backoff_factor is the delay between retries in seconds. Then we call session.
The max-retries command specifies the maximum number of attempts to retransmit a failed message. This command is relevant only when the value set by the retry command is on . After you use the max-retries command, you can specify the interval between the attempts with the retry-interval command.
Just use requests'
features:
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
session = requests.Session()
retry = Retry(connect=3, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://', adapter)
session.mount('https://', adapter)
session.get(url)
This will GET
the URL and retry 3 times in case of requests.exceptions.ConnectionError
. backoff_factor
will help to apply delays between attempts to avoid to fail again in case of periodic request quota.
Take a look at requests.packages.urllib3.util.retry.Retry
, it has many options to simplify retries.
What happened here is that itunes server refuses your connection (you're sending too many requests from same ip address in short period of time)
Max retries exceeded with url: /in/app/adobe-reader/id469337564?mt=8
error trace is misleading it should be something like "No connection could be made because the target machine actively refused it".
There is an issue at about python.requests lib at Github, check it out here
To overcome this issue (not so much an issue as it is misleading debug trace) you should catch connection related exceptions like so:
try:
page1 = requests.get(ap)
except requests.exceptions.ConnectionError:
r.status_code = "Connection refused"
Another way to overcome this problem is if you use enough time gap to send requests to server this can be achieved by sleep(timeinsec)
function in python (don't forget to import sleep)
from time import sleep
All in all requests is awesome python lib, hope that solves your problem.
Just do this,
Paste the following code in place of page = requests.get(url)
:
import time
page = ''
while page == '':
try:
page = requests.get(url)
break
except:
print("Connection refused by the server..")
print("Let me sleep for 5 seconds")
print("ZZzzzz...")
time.sleep(5)
print("Was a nice sleep, now let me continue...")
continue
You're welcome :)
pip install pyopenssl
seemed to solve it for me.
https://github.com/requests/requests/issues/4246
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With