PRAW は SOCKS 対応の Requests セッションを受け入れる
PRAW の requestor に設定済みの Requests セッションを渡し、SOCKS サーバーが Reddit の宛先名を解決すべき場合は socks5h を使います。
requestor_kwargs を介して PRAW 8.0.3 に SOCKS 対応の Requests セッションを渡します:
import praw
import requests
session = requests.Session()
session.proxies.update({
'http': 'socks5h://proxy.example:1080',
'https': 'socks5h://proxy.example:1080',
})
reddit = praw.Reddit(
client_id=client_id,
client_secret=client_secret,
user_agent=user_agent,
requestor_kwargs={'session': session},
)
アプリケーションの Reddit 認証情報と user agent を使い、この reddit インスタンス経由で API 呼び出しを行います。requestor とセッションはアプリケーションの通常の後片付けで管理します。
Requests には SOCKS サポートが必要です。socks5h は宛先名の解決をプロキシに委ねます。socks5 はローカルで解決します。
SOCKS5 プロキシ一覧の公開エンドポイントがこのマップのアドレスを提供できます。まず Session() を作成し、示されているとおりにその proxies 属性を更新します。コンストラクターに proxies キーワードはありません。
渡したセッションはRequests の環境統合を保持するため、継承されたプロキシとバイパスの設定が経路選択に影響することがあります。アプリケーションが完全に所有する経路にするには trust_env を確認してください。無効化する場合は、以前その環境から取得していた信頼と認証の入力もすべて指定する必要があります。