Maison >développement back-end >Tutoriel Python >Pourquoi est-ce que je reçois une erreur « 403 Forbidden » lorsque j'effectue des appels d'API de requêtes Python ?

Pourquoi est-ce que je reçois une erreur « 403 Forbidden » lorsque j'effectue des appels d'API de requêtes Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 03:19:30692parcourir

Why Am I Getting a

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn