Mantieni l'invio del modulo di MechanicalSoup sulla stessa rotta proxy
Collega una sessione Requests configurata a StatefulBrowser così l'apertura della pagina e l'invio del modulo condividono rotta e 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)Scegli l'endpoint prima di aprire la pagina del modulo. Per un modulo pubblico in cui sono ammessi proxy pubblici, può essere un candidato dalla lista di proxy HTTP. Costruisci la sessione e passala a StatefulBrowser come mostrato. Usa lo stesso browser per open, la selezione del modulo e submit_selected; chiudilo con browser.close() quando il flusso di lavoro termina.
Così la politica del proxy e lo stato dei cookie restano sulla sessione usata per l'intero scambio. Un argomento proxies fornito a una singola richiesta iniziale non configura automaticamente un invio successivo.
trust_env = False rende la rotta di questo esempio indipendente dalle impostazioni proxy d'ambiente di Requests. Disattiva anche la selezione del pacchetto CA dall'ambiente e l'autenticazione con .netrc. Forniscili esplicitamente se il flusso di lavoro ne ha bisogno, oppure tieni conto dell'ambiente quando scegli una politica diversa.