Python リクエスト ライブラリを使用したリダイレクト後の新しい URL の決定
Python リクエスト ライブラリは HTTP リクエストの処理に優れていますが、そのリダイレクト メカニズムを理解することが重要です最終的なランディング ページにアクセスするため。 allow_redirects=True を設定すると、ライブラリはリダイレクト チェーンを通じてリクエストに従います。ただし、リダイレクトされた新しい URL を取得するには、リクエストの履歴を詳しく調べる必要があります。
response.history 属性には、リクエスト中に発生したすべてのリダイレクト レスポンスの記録が保持されます。履歴リスト内の各応答には、ステータス コードとリダイレクト先の URL が含まれます。リストの最後の項目は、response.url に保存されている最終的な宛先を表します。
この情報にアクセスするには、次のコードを使用します。
import requests response = requests.get(someurl, allow_redirects=True) if response.history: print("Request was redirected") for resp in response.history: print(resp.status_code, resp.url) print("Final destination:") print(response.status_code, response.url) else: print("Request was not redirected")
次の例を考えてみましょう。
>>> response = requests.get('http://httpbin.org/redirect/3') >>> response.history (<Response [302]>, <Response [302]>, <Response [302]>) >>> for resp in response.history: ... print(resp.status_code, resp.url) ... 302 http://httpbin.org/redirect/3 302 http://httpbin.org/redirect/2 302 http://httpbin.org/redirect/1 >>> print(response.status_code, response.url) 200 http://httpbin.org/get
このデモでは、リダイレクト チェーンをたどり、各リダイレクトのステータス コードと URL を表示し、最終的に最終的な宛先を表示するプロセスを示します。 response.history を利用すると、リクエストがリダイレクトされた後に新しい URL を簡単に抽出できます。
以上がPython リクエストを使用してリダイレクト後の最終 URL を決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。