Comment corriger les erreurs « 403 Forbidden » dans les requêtes Python ?

DDD
Libérer: 2024-11-01 17:04:03
original
516 Les gens l'ont consulté

How to Fix

Résolution des erreurs « 403 interdites » dans les appels d'API à l'aide de requêtes Python

Lorsque vous essayez d'analyser un site Web à l'aide de la bibliothèque de requêtes de Python, vous pouvez rencontrer une erreur « 403 interdite » . Cette erreur indique généralement que le serveur a rejeté votre demande en raison d'un manque d'autorisation ou d'autorisation appropriée.

Exemple d'erreur

Considérez le code suivant :

<code class="python">url = 'http://worldagnetwork.com/'
result = requests.get(url)
print(result.content.decode())</code>
Copier après la connexion

Ce code tente de récupérer et de décoder le contenu de l'URL spécifiée. Cependant, il produit le résultat suivant :

<code class="html"><html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html></code>
Copier après la connexion

Root Cause

Dans ce cas spécifique, le problème survient car le serveur rejette les requêtes GET sans en-tête User-Agent. Un en-tête User-Agent identifie le navigateur ou l'application qui envoie la requête, ce qui aide le serveur à déterminer comment traiter la requête.

Solution

Pour résoudre ce problème, spécifiez explicitement un en-tête User-Agent dans votre demande de demandes. Voici un exemple :

<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>
Copier après la connexion

En définissant l'en-tête User-Agent sur une valeur appropriée, vous pouvez efficacement imiter un navigateur et récupérer avec succès le contenu du site Web, comme le démontre le résultat suivant :

<code class="html"><!doctype html>
<!--[...]-->
<!--[...]--></code>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal