Karaktere bereziak proxyen pasahitzetan
Kodetu proxyaren erabiltzaile-izena eta pasahitza bereizita, @, bi puntuek, barrek eta # ikurrak URLa hautsi ez dezaten.
@ edo # duen pasahitz batek eskuz eraikitako proxy URLa hautsi dezake, kredentzialak zuzenak izan arren. Karaktere horiek badute jada esanahia URL batean; beraz, bezeroak pasahitzaren zati bat ostalari-izen edo fragmentu gisa interpreta dezake.
Kodetu kredentzialen bi eremuak bereizita
Adibide honek URLaren egitura-bereizleak mantentzen ditu eta erabiltzaile-izena eta pasahitza soilik kodetzen ditu:
from urllib.parse import quote
username = "user@team"
password = "p:a/ss#?"
proxy_url = (
"http://"
+ quote(username, safe="")
+ ":"
+ quote(password, safe="")
+ "@203.0.113.10:8080"
)
Erabili zure benetako amaiera-puntua eta kredentzialak. Erakutsitako helbidea dokumentazio-adibidea da. safe argumentu hutsa garrantzitsua da: quote-k normalean barra ihesik gabe uzten du, baina kredentzial-eremu honetako barra kodetu behar da.
Ez kodetu proxy URL osoa. Eskemaren bereizleak eta kredentzialen eta ostalariaren arteko @ kodetzeak gorde nahi zenuen egitura suntsitzen du. Saihestu jada kodetutako pasahitza bigarren aldiz kodetzea ere.
Erabili emaitza Requests-ekin
import requests
response = requests.get(
"https://example.com/",
proxies={"http": proxy_url, "https": proxy_url},
timeout=(5, 15),
)
response.raise_for_status()
Eskaerak huts egiten jarraitzen badu, egiaztatu proxyak saio-hasiera ukatzen duen edo bezeroak lehenago huts egin duen analizatzean edo konektatzean. 407 autentifikazio-erronka eta URL baliogabea hutsegite desberdinak dira.
HTTPX-k autentifikazioa bereizita gorde dezake
HTTPX-en Proxy objektuak amaiera-puntua eta kredentzialak argumentu bereizi gisa jaso ditzake:
import httpx
proxy = httpx.Proxy(
"http://203.0.113.10:8080",
auth=("user@team", "p:a/ss#?"),
)
with httpx.Client(proxy=proxy, trust_env=False, timeout=15) as client:
response = client.get("https://example.com/")
response.raise_for_status()
Horrela ez duzu userinfo zatia zeuk eraiki behar. Ez ditu kredentzialak proxy-konexiotik independente zifratzen, eta ez du zerbitzu guztiek onartzen duten autentifikazio-metodorik hautatzen.
Doako zerrendak IPa eta ataka soilik ematen baditu, adibide honek ez du kredentzial lehenetsirik ematen. Erabili autentifikazioa operadoreak benetan kontua ematen duenean soilik. Ez jarri kredentzialak dituzten URLak partekatutako egunkarietan edo iturburu-fitxategietan.