Håll MechanicalSoups formulärinlämning på samma proxyväg
Koppla en konfigurerad Requests-session till StatefulBrowser så att sidan som öppnas och formuläret som skickas delar väg och cookies.
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)Välj slutpunkten innan du öppnar formulärsidan. För ett offentligt formulär där offentliga proxyserver är tillåtna kan den vara en kandidat från HTTP-proxylistan. Bygg sessionen och skicka den till StatefulBrowser enligt exemplet. Använd samma webbläsare för open, formulärvalet och submit_selected; stäng den med browser.close() när arbetsflödet är slut.
Detta behåller proxyprincipen och cookiestatusen i sessionen som används för hela utbytet. Ett proxies-argument som ges till en första hämtning konfigurerar inte automatiskt en senare inlämning.
trust_env = False gör exemplets väg oberoende av Requests proxyinställningar från miljön. Det stänger också av miljöbaserat val av CA-paket och .netrc-autentisering. Ange dem uttryckligen om arbetsflödet behöver dem, eller ta hänsyn till miljön när du väljer en annan princip.