pythonはhttp APIに効率的にアクセスします:ライブラリを要求し、キャッシュを要求します
この記事は「Practical Python」から抜粋されており、著者のStuartは、Pythonといくつかのサードパーティモジュールを使用してHTTP APIに簡単にアクセスする方法を示しています。
ほとんどの場合、サードパーティのデータを処理するには、HTTP APIへのアクセスが必要です。つまり、手動ではなくマシンで読み取るように設計されたWebページにHTTPリクエストを送信します。 APIデータは通常、通常はJSONまたはXMLでマシン読み取り可能な形式です。 Pythonを使用してHTTP APIにアクセスする方法を見てみましょう。HTTP APIを使用する基本原則は簡単です:
モジュールです。これは、Pythonの組み込みrequests
urllib.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()
キャッシュhttp要求while
の代わりにrequests
を使用してURLを取得するには、余分な労力なしでキャッシュのメリットを取得します。
python -m pip install requests-cache
出力を生成requests-cache
requests_cache
クエリの結果を表示するには、どこかに画像を表示する必要があります。便利な方法は、シンプルなHTMLページを作成して各画像を表示することです。 Pixabayは各画像に小さなサムネイルを提供します。これはAPI応答でCachedSession
と呼ばれるため、HTMLページを作成してこれらすべてのサムネイルを表示し、メインのPixabayページにリンクできます。写真家に欲しいと署名してください。したがって、ページの各画像は次のようになるかもしれません:session.get
requests.get
リストの理解を使用して
previewURL
images
この記事は実用的なPythonから抜粋されており、SitePoint Premiumおよび電子書籍の小売業者で購入できます。 "n".join()
(以下はFAQであり、元のテキストに従って書き直され、合理化されています)
PythonのHTTP API(FAQS)
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ヘッダーを使用する方法は? headers
パラメーターに辞書として渡すことにより、Pythonでそれらを使用できます。たとえば、requests.get(url, headers={'User-Agent': 'my-app'})
。ヘッダーを使用して、ユーザーエージェント、コンテンツタイプ、承認など、リクエストまたはクライアントに関する追加情報を提供できます。
PythonでCookieを処理する方法は? cookieは、応答オブジェクトのcookies
属性を使用してpythonで処理できます。 response.cookies
を使用してサーバーから送信されたCookieにアクセスし、requests
関数のcookies
パラメーターに辞書として渡すことにより、サーバーにCookieを送信できます。
pythonのpost requestを使用してフォームデータを送信する方法は? requests.post
。 data
ライブラリは、データを正しい形式で自動的にエンコードします。 requests.post(url, data={'key': 'value'})
requests
関数のパラメーターに渡すことにより、送信できます。辞書には、ファイルフィールドの名前をキーとして、ファイル名とファイルオブジェクトを値として含むタプルを含める必要があります。
pythonのrequests
ライブラリのエラーと例外を扱う方法は? Pythonのライブラリは、ネットワークエラーやタイムアウトなどの特定のタイプのエラーの例外をスローします。 Try/を除くブロックを使用して、これらの例外をキャッチし、適切に処理できます。応答のステータスコードを確認して、HTTPエラーを処理することもできます。 requests
Pythonで非同期HTTPリクエストを作成する方法は? ライブラリを使用して、Pythonで非同期HTTPリクエストを発行できます。このライブラリを使用すると、HTTPリクエストを非同期的に送信して応答を処理できます。これにより、多数のリクエストを処理する際にアプリケーションのパフォーマンスが大幅に向上する可能性があります。 aiohttp
以上がPythonを使用してHTTP APIからデータを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。