Dépannage des erreurs « 403 interdites » dans les appels d'API de requêtes Python
Lorsque vous tentez d'extraire des données d'un site Web à l'aide du module de requêtes de Python, ce n'est pas le cas. Il est rare de rencontrer une erreur « 403 Forbidden ». Cette erreur indique que le serveur refuse de répondre à la demande en raison de restrictions d'accès.
Considérez l'extrait de code suivant :
<code class="python">import requests url = 'http://worldagnetwork.com/' result = requests.get(url) print(result.content.decode())</code>
Une fois exécuté, ce code peut renvoyer l'erreur suivante :
<html> <head><title>403 Forbidden</title></head> <body bgcolor="white"> <center><h1>403 Forbidden</h1></center> <hr><center>nginx</center> </body> </html>
Le problème dans ce cas vient du fait que le site Web rejette les requêtes GET qui ne disposent pas d'un en-tête User-Agent approprié. En visitant la page dans un navigateur (par exemple, Chrome) et en inspectant le trafic réseau, nous pouvons déterminer le User-Agent utilisé par le navigateur.
Pour résoudre l'erreur, nous devons ajouter l'en-tête User-Agent à nos demandes, appelez :
<code class="python">import requests url = 'http://worldagnetwork.com/' headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'} result = requests.get(url, headers=headers) print(result.content.decode())</code>
Avec l'en-tête User-Agent ajouté, la requête devrait maintenant réussir à analyser le contenu HTML du site Web.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!