Python の googlemaps クライアントは、ウェブサービスへのリクエストを Requests 経由で送信します。クライアントの requests_kwargs 辞書で Requests のオプションを指定します:

import googlemaps

gmaps = googlemaps.Client(
    key=maps_api_key,
    connect_timeout=5,
    read_timeout=30,
    requests_kwargs={
        'proxies': {
            'http': 'http://proxy.example:8080',
            'https': 'http://proxy.example:8080',
        },
    },
)

maps_api_key はアプリケーションの既存の API キーです。目的の呼び出しにはこの gmaps インスタンスを使います。選択したセッションにプロキシの資格情報がない場合、HTTP プロキシリストの HTTP 候補が、許可された公開 Maps API リクエストの経路を提供できます。

proxies の値は送信先スキームからプロキシ URL へのマップです。host/port のタプルでも、単一の構造化されていないプロキシ文字列でもありません。HTTPS の送信先には、ここに示す HTTP プロキシのエンドポイントを使えます。

クライアントはこれらのオプションを、自身が行う Requests 呼び出しにマージします。アプリケーションの別の場所にある単独の requests.get はこのクライアントを設定せず、これらのオプションなしで構築された別の googlemaps.Client は独自の設定を持ちます。

すでに Requests セッションを所有する長期的な統合では、ライブラリは requests_session も受け付けます。共有するときは、セッションのポリシーと所有権を意識して保ってください。API キーは引き続き Maps リクエストを認証します。プロキシの資格情報が必要な場合は、仲介者がサポートする認証の取り決めに属します。

関連記事