Sonderzeechen a Proxy-Passwierder
Proxybenotzernumm a Passwuert getrennt kodéieren, fir datt @, Doppelpunkten, Schréistrécher an # d’URL net beschiedegen.
E Passwuert mat @ oder # kann eng vun Hand zesummegesate Proxy-URL beschiedegen, och wann d’Zougangsdaten stëmmen. Dës Zeechen hu schonn eng Bedeitung an enger URL; de Client kann dofir en Deel vum Passwuert als Hostnumm oder Fragment interpretéieren.
Déi zwee Zougangsdatefelder getrennt kodéieren
Dëst Beispill behält d’strukturell Trennzeeche vun der URL bäi a kodéiert nëmmen de Benotzernumm an d’Passwuert:
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"
)
Benotzt Ären tatsächlechen Endpunkt an Är Zougangsdaten. Déi gewisen Adress ass en Dokumentatiounsbeispill. Dat eidelt Argument safe ass wichteg: quote léisst e Schréistréch normalerweis onverännert, mee an dësem Zougangsdatefeld muss en kodéiert ginn.
Kodéiert net déi ganz Proxy-URL. D’Kodéiere vun de Schematrennzeechen an dem @ tëscht Zougangsdaten an Host zerstéiert déi Struktur, déi Dir wollt erhalen. Vermeit och, e scho kodéiert Passwuert eng zweete Kéier ze kodéieren.
D’Resultat mat Requests benotzen
import requests
response = requests.get(
"https://example.com/",
proxies={"http": proxy_url, "https": proxy_url},
timeout=(5, 15),
)
response.raise_for_status()
Wann d’Ufro weider feelt, kontrolléiert ob de Proxy de Login refuséiert oder de Client scho méi fréi beim Analyséieren oder Verbannen ausgefall ass. Eng 407-Authentifikatiounsufro an eng ongülteg URL si verschidde Feeler.
HTTPX kann d’Authentifikatioun getrennt halen
En HTTPX Proxy-Objet kann den Endpunkt an d’Zougangsdaten als getrennten Argumenter kréien:
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()
Sou musst Dir de userinfo-Deel net selwer opbauen. Dat verschlësselt d’Daten net onofhängeg vun der Proxyverbindung a wielt keng Authentifikatiounsmethod, déi all Service ënnerstëtzt.
Wann eng gratis Lëscht nëmmen IP a Port liwwert, stellt dëst Beispill keng Standardzougangsdaten zur Verfügung. Benotzt Authentifikatioun nëmmen, wann de Bedreiwer wierklech e Kont ubitt. Setzt keng URLen mat Zougangsdaten a gemeinsam Loggen oder Quelldateien.