ホームページ >バックエンド開発 >Python チュートリアル >Python リクエストの「403 Forbidden」エラーを修正する方法?

Python リクエストの「403 Forbidden」エラーを修正する方法?

DDD
DDDオリジナル
2024-11-01 17:04:03518ブラウズ

How to Fix

Python リクエストを使用した API 呼び出しでの「403 Forbidden」エラーの解決

Python のリクエスト ライブラリを使用して Web サイトを解析しようとすると、「403 Forbidden」エラーが発生する場合があります。このエラーは通常、適切な承認または許可がないためにサーバーがリクエストを拒否したことを示します。

エラーの例

次のコードを考えてみましょう:

<code class="python">url = 'http://worldagnetwork.com/'
result = requests.get(url)
print(result.content.decode())</code>

このコード指定された URL のコンテンツを取得してデコードしようとします。ただし、次の出力が生成されます。

<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>

根本原因

この特定のケースでは、サーバーが User-Agent ヘッダーのない GET リクエストを拒否しているために問題が発生します。 User-Agent ヘッダーは、リクエストを送信するブラウザまたはアプリケーションを識別し、サーバーがリクエストを処理する方法を決定するのに役立ちます。

解決策

この問題を解決するには、User-Agent ヘッダーを明示的に指定します。あなたのリクエストリクエストに。以下に例を示します。

<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>

User-Agent ヘッダーを適切な値に設定すると、次の出力に示すように、ブラウザを効果的に模倣して Web サイトのコンテンツを正常に取得できます。

<code class="html"><!doctype html>
<!--[...]-->
<!--[...]--></code>

以上がPython リクエストの「403 Forbidden」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。