Python Requests Library Redirect
If you are using the Python Requests library to send HTTP requests to a web server, you may encounter situations where the server responds with a redirect response (HTTP status code 3xx).
When a redirect response is received, the Requests library can automatically follow the redirect and retrieve the resource from the new location. This behavior is controlled by the allow_redirects
parameter of the request()
method.
Following Redirects
The simplest way to follow redirects is to set allow_redirects
to True
:
import requests
response = requests.get('http://example.com', allow_redirects=True)
print(response.status_code)
print(response.history)
print(response.url)
The history
property of the response object contains a list of all responses that were followed to get to the final response. If there were no redirects, this list will be empty.
Limiting Redirects
If you want to limit the number of redirects that the Requests library will follow, you can set the max_redirects
parameter. For example, to allow only one redirect:
import requests
response = requests.get('http://example.com', allow_redirects=True, max_redirects=1)
print(response.status_code)
print(response.history)
print(response.url)
If there are more redirects than the specified limit, the library will raise a TooManyRedirects
exception.
Disabling Redirects
If you want to disable redirects entirely, you can set allow_redirects
to False
:
import requests
response = requests.get('http://example.com', allow_redirects=False)
print(response.status_code)
print(response.history)
print(response.url)
In this case, the response object will contain the redirect response instead of following the redirect.
That's it for this tutorial on using the Python Requests library to handle redirects. By controlling the allow_redirects
and max_redirects
parameters, you can customize how the library handles redirects and retrieve the resources you need.