Python リクエスト ライブラリを使用したリダイレクトされた URL の取得
Web スクレイピングと自動化の領域では、発生するリダイレクトを追跡することが必要になることがよくあります。 Webページにアクセスするとき。 Python リクエスト ライブラリは、リダイレクトをナビゲートする機能など、HTTP リクエストを管理するための包括的な機能を提供します。この記事は、Requests ライブラリを使用してリダイレクトされた URL を取得する方法を明確にし、コミュニティで提起されたクエリに対処することを目的としています。
問題:
スクリプト内では、allow_redirects =True フラグは、リダイレクトを自動的に追跡するように設定されます。ただし、ユーザーはリクエストのリダイレクト先となる最終 URL を決定したいと考えています。疑問が生じます: この情報をプログラムでどのように取得できるでしょうか?
解決策:
解決策は、リクエストによって提供される response.history 属性を利用することにあります。この属性には、最終宛先に至るリダイレクトの過程全体を含む応答のリストが保存されます。最終 URL にアクセスするには、response.url プロパティを使用できます。
プロセスを示すコード スニペットは次のとおりです:
response = requests.get(someurl) 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")
デモ:
複数の処理を実行するように構成された Web サイトに対してリクエストが行われる次の例を考えてみましょう。 redirects:
import requests response = requests.get('http://httpbin.org/redirect/3') for resp in response.history: print(resp.status_code, resp.url) print(response.status_code, response.url)
出力:
302 http://httpbin.org/redirect/3 302 http://httpbin.org/redirect/2 302 http://httpbin.org/redirect/1 200 http://httpbin.org/get
出力から明らかなように、コードは各リダイレクトのステータス コードと URL、および最終的な宛先を正常に記録します。
以上がPython リクエスト ライブラリを使用してリダイレクトされた URL を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。