検索
ホームページバックエンド開発Python チュートリアルPythonを使用してHTTP APIからデータを取得します

Fetching Data from an HTTP API with Python

pythonはhttp APIに効率的にアクセスします:ライブラリを要求し、キャッシュを要求します

この記事は「Practical Python」から抜粋されており、著者のStuartは、Pythonといくつかのサードパーティモジュールを使用してHTTP APIに簡単にアクセスする方法を示しています。

ほとんどの場合、サードパーティのデータを処理するには、HTTP APIへのアクセスが必要です。つまり、手動ではなくマシンで読み取るように設計されたWebページにHTTPリクエストを送信します。 APIデータは通常、通常はJSONまたはXMLでマシン読み取り可能な形式です。 Pythonを使用してHTTP APIにアクセスする方法を見てみましょう。

HTTP APIを使用する基本原則は簡単です:

    APIのURLにHTTPリクエストを送信します。これには、認証情報(APIキーなど)が含まれる場合があります。
  1. データを取得します。
  2. データを使用して、有用な操作を完了します。
Python Standard Libraryは、追加のモジュールなしでこのすべてを実行するのに十分な機能を提供しますが、プロセスを簡素化するためにいくつかのサードパーティモジュールを使用すると、作業が容易になります。最初のものは

モジュールです。これは、Pythonの組み込みrequestsurllib.requestよりもHTTPデータをより便利にするPython用のHTTPライブラリであり、python -m pip install requestsを使用してインストールできます。

その使いやすさを示すために、PixabayのAPIを使用します(ここに文書化されています)。 Pixabayは、すべての画像を再利用できる写真Webサイトであり、非常に便利なリソースになります。フルーツの写真に焦点を当てます。後でファイルを操作するとき、収集されたフルーツの写真を使用しますが、今ではフルーツの写真を見つけたいだけです。

最初に、Pixabayでどの写真が利用できるかをすぐに確認します。私たちは100枚の写真をつかみ、それらをすばやく閲覧し、私たちが望むものを選択します。これを行うには、Pixabay APIキーが必要なため、アカウントを作成してから、APIドキュメントの検索画像セクションからキーを取得する必要があります。

モジュールを要求

requestsモジュールを使用してHTTP要求をAPIに行うことの基本バージョンには、HTTP URLの構築、リクエストの作成、および読み取り応答が含まれます。ここで、応答はJSON形式です。 requestsモジュールは、各ステップを非常にシンプルにします。 APIパラメーターはPython Dictionaryであり、APIがJSONを返す場合、get()requestsを返信します。したがって、単純な呼び出しは次のようになります:.json

import requests

PIXABAY_API_KEY = "11111111-7777777777777777777777777"

base_url = "https://pixabay.com/api/"
base_params = {
    "key": PIXABAY_API_KEY,
    "q": "fruit",
    "image_type": "photo",
    "category": "food",
    "safesearch": "true"
}

response = requests.get(base_url, params=base_params)
results = response.json()
これはPythonオブジェクトを返し、APIドキュメントで示唆されているように、そのさまざまな部分を表示できます。100の結果を得るために、5つの呼び出しを行うことを決定することができます。それぞれが20の結果を得ることができますが、これは十分に堅牢ではありません。より良いアプローチは、希望する100の結果が得られるまで、リクエストページをループして停止することです。これにより、Pixabayが結果のデフォルト数(たとえば15)を変更すると問題が防止されます。また、検索用語に100枚の写真がない状況を処理することもできます。したがって、毎回ページ番号を増やし、100枚の画像に到達した場合、または取得する画像がない場合は、ループを終了します。

キャッシュhttp要求while

HTTP APIに複数回同じリクエストを行わないようにすることをお勧めします。多くのAPIには、要求者による過剰使用を避けるための使用制限があり、リクエストには時間と労力がかかります。以前のリクエストの複製を避けるようにしてください。幸いなことに、Pythonのモジュールを使用する場合、これを行うには便利な方法があります。これにより、結果を保存して保存するHTTP呼び出しをシームレスに記録します。その後、後で同じ呼び出しを行うと、APIに再びアクセスすることなく、ローカルで保存された結果が得られます。これにより、時間と帯域幅が節約されます。

を使用してインポートして

を作成してから、

の代わりにrequestsを使用してURLを取得するには、余分な労力なしでキャッシュのメリットを取得します。 python -m pip install requests-cache出力を生成requests-cache requests_cacheクエリの結果を表示するには、どこかに画像を表示する必要があります。便利な方法は、シンプルなHTMLページを作成して各画像を表示することです。 Pixabayは各画像に小さなサムネイルを提供します。これはAPI応答でCachedSessionと呼ばれるため、HTMLページを作成してこれらすべてのサムネイルを表示し、メインのPixabayページにリンクできます。写真家に欲しいと署名してください。したがって、ページの各画像は次のようになるかもしれません:session.get requests.getリストの理解を使用して

リストからビルドしてから、

を使用してすべての結果を大きな文字列に連結します。

そのリストで非常にシンプルなHTMLページを書き出すと、Webブラウザで簡単に開き、APIから取得したすべての検索結果をすばやく表示し、それらのいずれかをクリックしてダウンロードをジャンプしてフルまでジャンプします。 Pixabayページ:

previewURL

imagesこの記事は実用的なPythonから抜粋されており、SitePoint Premiumおよび電子書籍の小売業者で購入できます。 "n".join()

(以下はFAQであり、元のテキストに従って書き直され、合理化されています)

PythonのHTTP API(FAQS)Fetching Data from an HTTP API with Python

を使用してデータを取得することに関するよくある質問
  • HTTPとHTTPSの違いは何ですか? HTTPはハイパーテキスト転送プロトコルであり、HTTPSは安全なハイパーテキスト転送プロトコルです。主な違いは、HTTPSがSSL証明書を使用して、サーバーとクライアントの間に安全な暗号化された接続を確立することですが、HTTPはそうではありません。これにより、クレジットカード情報やログイン資格情報などの機密データを転送するときに、HTTPSがより安全になります。

  • pythonでHTTPはどのように機能しますか? Pythonで複数のライブラリを使用してHTTPリクエストを発行できます。最も一般的に使用されるのはrequestsです。このライブラリを使用すると、Cookieの処理、フォームデータ、マルチパートファイルなど、HTTPリクエストとプロセス応答を送信できます。これは、Webサービスと対話するための強力なツールであり、さまざまなアプリケーションで使用できます。

  • 一般的なHTTPメソッドは何ですか? Pythonでそれらを使用する方法は? 最も一般的なHTTPメソッドは、取得、投稿、配置、削除、ヘッド、オプション、およびパッチです。 Pythonでは、これらの方法を使用するためにrequestsライブラリを使用できます。たとえば、get requestを送信するには、requests.get(url)を使用して、POSTリクエストを送信するには、requests.post(url, data)を使用できます。

  • PythonでHTTP応答を処理する方法は? requestsライブラリを使用してPythonでHTTPリクエストを送信すると、応答オブジェクトが表示されます。このオブジェクトには、リクエストに対するサーバーの応答が含まれています。応答がJSON形式である場合、response.textまたはresponse.json()を使用して、応答のコンテンツにアクセスできます。また、response.status_codeを使用して、応答のステータスコードを確認することもできます。

  • PythonでHTTPヘッダーを使用する方法は? requests関数のheadersパラメーターに辞書として渡すことにより、Pythonでそれらを使用できます。たとえば、requests.get(url, headers={'User-Agent': 'my-app'})。ヘッダーを使用して、ユーザーエージェント、コンテンツタイプ、承認など、リクエストまたはクライアントに関する追加情報を提供できます。

  • PythonでCookieを処理する方法は? cookieは、応答オブジェクトのcookies属性を使用してpythonで処理できます。 response.cookiesを使用してサーバーから送信されたCookieにアクセスし、requests関数のcookiesパラメーターに辞書として渡すことにより、サーバーにCookieを送信できます。

  • pythonのpost requestを使用してフォームデータを送信する方法は? フォームデータを関数のパラメーターに辞書として渡すことにより、PythonのPOSTリクエストを使用して送信できます。たとえば、requests.postdataライブラリは、データを正しい形式で自動的にエンコードします。 requests.post(url, data={'key': 'value'}) requests

  • PythonでPOSTリクエストを使用してファイルを送信する方法は? ファイルは、PythonのPost Requestsを使用して辞書として

    関数のパラメーターに渡すことにより、送信できます。辞書には、ファイルフィールドの名前をキーとして、ファイル名とファイルオブジェクトを値として含むタプルを含める必要があります。

  • pythonのrequestsライブラリのエラーと例外を扱う方法は? Pythonのライブラリは、ネットワークエラーやタイムアウトなどの特定のタイプのエラーの例外をスローします。 Try/を除くブロックを使用して、これらの例外をキャッチし、適切に処理できます。応答のステータスコードを確認して、HTTPエラーを処理することもできます。 requests

  • Pythonで非同期HTTPリクエストを作成する方法は? ライブラリを使用して、Pythonで非同期HTTPリクエストを発行できます。このライブラリを使用すると、HTTPリクエストを非同期的に送信して応答を処理できます。これにより、多数のリクエストを処理する際にアプリケーションのパフォーマンスが大幅に向上する可能性があります。 aiohttp

以上がPythonを使用してHTTP APIからデータを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

Python vs. C:プロジェクトのためにどの言語を選択しますか?Python vs. C:プロジェクトのためにどの言語を選択しますか?Apr 21, 2025 am 12:17 AM

PythonまたはCの選択は、プロジェクトの要件に依存します。1)迅速な開発、データ処理、およびプロトタイプ設計が必要な場合は、Pythonを選択します。 2)高性能、低レイテンシ、および緊密なハードウェアコントロールが必要な場合は、Cを選択します。

Pythonの目標に到達する:毎日2時間のパワーPythonの目標に到達する:毎日2時間のパワーApr 20, 2025 am 12:21 AM

毎日2時間のPython学習を投資することで、プログラミングスキルを効果的に改善できます。 1.新しい知識を学ぶ:ドキュメントを読むか、チュートリアルを見る。 2。練習:コードと完全な演習を書きます。 3。レビュー:学んだコンテンツを統合します。 4。プロジェクトの実践:実際のプロジェクトで学んだことを適用します。このような構造化された学習計画は、Pythonを体系的にマスターし、キャリア目標を達成するのに役立ちます。

2時間の最大化:効果的なPython学習戦略2時間の最大化:効果的なPython学習戦略Apr 20, 2025 am 12:20 AM

2時間以内にPythonを効率的に学習する方法は次のとおりです。1。基本的な知識を確認し、Pythonのインストールと基本的な構文に精通していることを確認します。 2。変数、リスト、関数など、Pythonのコア概念を理解します。 3.例を使用して、基本的および高度な使用をマスターします。 4.一般的なエラーとデバッグテクニックを学習します。 5.リストの概念を使用したり、PEP8スタイルガイドに従ったりするなど、パフォーマンスの最適化とベストプラクティスを適用します。

PythonとCのどちらかを選択:あなたに適した言語PythonとCのどちらかを選択:あなたに適した言語Apr 20, 2025 am 12:20 AM

Pythonは初心者やデータサイエンスに適しており、Cはシステムプログラミングとゲーム開発に適しています。 1. Pythonはシンプルで使いやすく、データサイエンスやWeb開発に適しています。 2.Cは、ゲーム開発とシステムプログラミングに適した、高性能と制御を提供します。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Python vs. C:プログラミング言語の比較分析Python vs. C:プログラミング言語の比較分析Apr 20, 2025 am 12:14 AM

Pythonはデータサイエンスと迅速な発展により適していますが、Cは高性能およびシステムプログラミングにより適しています。 1. Python構文は簡潔で学習しやすく、データ処理と科学的コンピューティングに適しています。 2.Cには複雑な構文がありますが、優れたパフォーマンスがあり、ゲーム開発とシステムプログラミングでよく使用されます。

1日2時間:Python学習の可能性1日2時間:Python学習の可能性Apr 20, 2025 am 12:14 AM

Pythonを学ぶために1日2時間投資することは可能です。 1.新しい知識を学ぶ:リストや辞書など、1時間で新しい概念を学びます。 2。練習と練習:1時間を使用して、小さなプログラムを書くなどのプログラミング演習を実行します。合理的な計画と忍耐力を通じて、Pythonのコアコンセプトを短時間で習得できます。

Python vs. C:曲線と使いやすさの学習Python vs. C:曲線と使いやすさの学習Apr 19, 2025 am 12:20 AM

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。