import mechanicalsoup
import requests

session = requests.Session()
session.trust_env = False
session.proxies.update({
    "http": "http://proxy.example.net:8080",
    "https": "http://proxy.example.net:8080",
})

browser = mechanicalsoup.StatefulBrowser(session=session)

フォームページを開く前にエンドポイントを選びます。公開プロキシが許可された公開フォームであれば、HTTP プロキシ一覧の候補を使えます。セッションを構築し、示されているとおり StatefulBrowser に渡します。同じブラウザを open、フォームの選択、submit_selected に使い、処理が終わったら browser.close() で閉じます。

これにより、プロキシの方針と Cookie の状態が一連のやり取りで使うセッション上に保たれます。最初の取得だけに与えた proxies 引数は、後続の送信を自動的に設定するものではありません。

trust_env = False により、この例の経路は Requests の環境プロキシ設定から独立します。環境からの CA バンドル選択と .netrc 認証も無効になります。ワークフローで必要なら明示的に指定し、別の方針を選ぶ場合は環境を考慮してください。

関連記事