Python リクエスト ライブラリを使用してリダイレクトされた URL を取得するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-16 11:38:03
オリジナル
266 人が閲覧しました

How to retrieve redirected URLs using the Python Requests library?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート