Сохранить отправку формы MechanicalSoup на том же прокси-маршруте
Привяжите настроенный сеанс Requests к StatefulBrowser, чтобы открытие страницы и отправка формы использовали один маршрут и одни cookie.
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. Укажите их явно, если они нужны, или учитывайте окружение, выбирая другую политику.