Proksi parollarında xüsusi simvollar
Proksi istifadəçi adı və parolunu ayrı kodlaşdırın ki, @, iki nöqtə, əyri xətlər və # URL-i pozmasın.
Giriş məlumatları doğru olsa belə, @ və ya # olan parol əl ilə qurulan proksi URL-ini poza bilər. Bu simvolların URL-də artıq mənası var; müştəri parolun bir hissəsini host adı və ya fraqment kimi təhlil edə bilər.
Giriş məlumatlarının iki sahəsini ayrı kodlaşdırın
Bu nümunə URL-in struktur ayırıcılarını saxlayır, yalnız istifadəçi adı və parolu kodlaşdırır:
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"
)
Həqiqi son nöqtənizi və giriş məlumatlarınızı işlədin. Göstərilən ünvan sənədləşdirmə nümunəsidir. Boş safe arqumenti vacibdir: quote adətən əyri xətti dəyişmir, lakin bu giriş məlumatı sahəsindəki əyri xətt kodlaşdırılmalıdır.
Bütün proksi URL-ini kodlaşdırmayın. Sxem ayırıcılarını və giriş məlumatları ilə host arasındakı @ işarəsini kodlaşdırmaq qorumaq istədiyiniz strukturu dağıdır. Artıq kodlaşdırılmış parolu ikinci dəfə kodlaşdırmaqdan da çəkinin.
Nəticəni Requests ilə işlədin
import requests
response = requests.get(
"https://example.com/",
proxies={"http": proxy_url, "https": proxy_url},
timeout=(5, 15),
)
response.raise_for_status()
Sorğu yenə uğursuz olursa, proksinin girişi rədd etdiyini, yoxsa müştərinin daha əvvəl təhlil və ya qoşulma zamanı uğursuz olduğunu yoxlayın. 407 autentifikasiya tələbi və etibarsız URL fərqli xətalardır.
HTTPX autentifikasiyanı ayrı saxlaya bilər
HTTPX Proxy obyekti son nöqtəni və giriş məlumatlarını ayrı arqumentlər kimi qəbul edə bilər:
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()
Bu, userinfo hissəsini özünüz qurmaq ehtiyacını aradan qaldırır. Giriş məlumatlarını proksi bağlantısından müstəqil şifrələmir və bütün xidmətlərin dəstəklədiyi autentifikasiya üsulunu seçmir.
Pulsuz siyahı yalnız IP və port verirsə, bu nümunə standart giriş məlumatı mənbəyi deyil. Autentifikasiyanı yalnız operator həqiqətən hesab verdikdə işlədin. Giriş məlumatlı URL-ləri ortaq jurnallara və mənbə fayllarına yazmayın.