ジオコーダーを独自の経路で構築します:

from urllib.parse import quote
from geopy.geocoders import GoogleV3

account = quote(proxy_user, safe='') + ':' + quote(proxy_password, safe='')
proxy_url = f'http://{account}@proxy.example:8080'
geocoder = GoogleV3(
    api_key=google_api_key,
    proxies={'http': proxy_url, 'https': proxy_url},
    timeout=10,
)

アプリケーションは両方のアカウントを用意します。google_api_key は Google のジオコーディングを認可し、URL 内のユーザー名とパスワードはプロキシを認可します。 その生の構成要素を一度だけエンコードする ことで、URL の構造的な区切り文字はエンコードの外に置けます。

proxies の値geopy のポリシー
Noneシステム検出を許可
{}直接アクセスを選択
空でないマッピング指定した経路を選択

https キーは HTTP プロキシ経由で運ばれる HTTPS 宛先に対応します。geopy の文書化されたインターフェースは CONNECT を含む HTTP プロキシをサポートしますが、https という表記自体がリスナーへの TLS を確立するわけではありません。

その安定したポリシーでジオコーダーを再利用します。個々の呼び出しの周りで環境値を切り替えると、同時に動作する別のジオコーダーに干渉する可能性があります。

関連記事