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. Укажите их явно, если они нужны, или учитывайте окружение, выбирая другую политику.

Похожие статьи