Formularübermittlung von MechanicalSoup auf derselben Proxy-Route halten
Binden Sie eine konfigurierte Requests-Sitzung an StatefulBrowser, damit Seitenaufruf und Formularübermittlung dieselbe Route und dieselben Cookies nutzen.
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)Wählen Sie den Endpunkt, bevor Sie die Formularseite öffnen. Für ein öffentliches Formular, bei dem öffentliche Proxys erlaubt sind, kann es ein Kandidat aus der HTTP-Proxy-Liste sein. Bauen Sie die Sitzung auf und übergeben Sie sie wie gezeigt an StatefulBrowser. Verwenden Sie denselben Browser für open, die Formularauswahl und submit_selected; schließen Sie ihn mit browser.close(), wenn der Ablauf endet.
So bleiben Proxy-Richtlinie und Cookie-Zustand in der Sitzung, die für den gesamten Austausch verwendet wird. Ein proxies-Argument, das einem einzelnen ersten Abruf übergeben wird, konfiguriert eine spätere Übermittlung nicht automatisch.
trust_env = False macht die Route dieses Beispiels unabhängig von den Proxy-Einstellungen der Umgebung von Requests. Es deaktiviert außerdem die Auswahl des CA-Bündels aus der Umgebung und die Authentifizierung per .netrc. Geben Sie diese explizit an, wenn der Ablauf sie benötigt, oder berücksichtigen Sie die Umgebung bei der Wahl einer anderen Richtlinie.