Python urllib: isku darka marinka proxy iyo Basic Authentication ee website-ka
Isku dar marinka urllib iyo Basic authentication ee meesha la aadayo hal opener cad, adigoon laba jeer beddelin global opener.
Wicitaanka install_opener() laba jeer ma ku daro opener-ka labaad kan koowaad. Waxay beddelaa module default opener. Haddii shay qudha yaqaan proxy-ga oo mid kale yaqaan gelitaanka website-ka, dhis hal opener oo leh handlers-ka loo baahan yahay.
import os
from urllib.request import (ProxyHandler, HTTPBasicAuthHandler,
HTTPPasswordMgrWithDefaultRealm, build_opener)
passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(None, 'https://example.com/private/',
os.environ['SITE_USER'], os.environ['SITE_PASSWORD'])
opener = build_opener(
ProxyHandler({'https': 'http://203.0.113.10:8080'}),
HTTPBasicAuthHandler(passwords),
)
with opener.open('https://example.com/private/report', timeout=10) as response:
body = response.read()proxy-ga iyo meesha la aadayo waa tusaale. Adeegga dadweynaha ee laga gaari karo HTTP proxy dadweyne, liiska proxy HTTP wuxuu bixiyaa endpoints mushahar ah handler-ka marinka. Opener-kan wuxuu HTTPS codsiga mariyaa HTTP proxy-ga oo maareeyaa caqabadda Basic ee meesha la aadayo. Ma habaynto xaqiijinta proxy.
Haddii proxy-ga sidoo kale u baahan yahay gelitaan, dooro si gooni ah nidaam xaqiijin proxy la taageeray. 407 waqtiga CONNECT wuxuu dhacaa ka hor inta meesha la aadayo aysan soo saari karin caqabadeeda. Ku darista aqoonsiga website-ka maareeyaha password-ka ma qancin karo isdhaafsiga hore.
U wicida opener.open() si toos ah waxay hayaan habaynta hawlgalka. Looma baahna beddelka default-ka module-ka oo dhan haddii aanay barnaamijku si ula kac ah u rabin in dhammaan wicitaannada ku habboon ay wadaagaan opener-kan.