പ്രവേശന വിവരങ്ങൾ ശരിയായാലും @ അല്ലെങ്കിൽ # അടങ്ങിയ പാസ്‌വേഡ് കൈകൊണ്ട് തയ്യാറാക്കിയ പ്രോക്സി URL തകർക്കാം. ഈ അക്ഷരങ്ങൾക്ക് URL-ൽ നേരത്തെ അർത്ഥമുണ്ട്; അതിനാൽ പാസ്‌വേഡിന്റെ ഭാഗം ക്ലയന്റ് ഹോസ്റ്റ്നാമമോ ഫ്രാഗ്മെന്റോ ആയി വായിക്കാം.

പ്രവേശന വിവരങ്ങളുടെ രണ്ട് ഫീൽഡുകളും വേർതിരിച്ച് എൻകോഡ് ചെയ്യുക

ഈ ഉദാഹരണം URL-ന്റെ ഘടനാപരമായ വിഭജകങ്ങൾ നിലനിർത്തി ഉപയോക്തൃനാമവും പാസ്‌വേഡും മാത്രം എൻകോഡ് ചെയ്യുന്നു:

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"
)

നിങ്ങളുടെ യഥാർത്ഥ എൻഡ്‌പോയിന്റും പ്രവേശന വിവരങ്ങളും ഉപയോഗിക്കുക. കാണിച്ച വിലാസം രേഖയിലെ ഉദാഹരണമാണ്. ശൂന്യമായ safe ആർഗ്യുമെന്റ് പ്രധാനമാണ്: quote സാധാരണ സ്ലാഷ് എസ്കേപ്പ് ചെയ്യാതെ വിടും; എന്നാൽ ഈ പ്രവേശന ഫീൽഡിനുള്ളിലെ സ്ലാഷ് എൻകോഡ് ചെയ്യണം.

മുഴുവൻ പ്രോക്സി URL എൻകോഡ് ചെയ്യരുത്. സ്കീം വിഭജകങ്ങളും പ്രവേശന വിവരങ്ങൾക്കും ഹോസ്റ്റിനും ഇടയിലെ @-ഉം എൻകോഡ് ചെയ്താൽ സംരക്ഷിക്കാൻ ശ്രമിച്ച ഘടന നശിക്കും. ഇതിനകം എൻകോഡ് ചെയ്ത പാസ്‌വേഡ് രണ്ടാമതും എൻകോഡ് ചെയ്യുന്നതും ഒഴിവാക്കുക.

ഫലം Requests-നൊപ്പം ഉപയോഗിക്കുക

import requests

response = requests.get(
    "https://example.com/",
    proxies={"http": proxy_url, "https": proxy_url},
    timeout=(5, 15),
)
response.raise_for_status()

അഭ്യർത്ഥന തുടർന്നും പരാജയപ്പെട്ടാൽ പ്രോക്സി ലോഗിൻ നിരസിക്കുകയാണോ, അതോ ക്ലയന്റ് നേരത്തെ പാർസിങ് അല്ലെങ്കിൽ കണക്ഷൻ ഘട്ടത്തിൽ പരാജയപ്പെട്ടതാണോ പരിശോധിക്കുക. 407 പ്രാമാണീകരണ വെല്ലുവിളിയും അസാധുവായ URL-ഉം വ്യത്യസ്ത പരാജയങ്ങളാണ്.

HTTPX-ന് പ്രാമാണീകരണം വേർതിരിച്ച് കൈകാര്യം ചെയ്യാം

HTTPX Proxy ഒബ്ജക്റ്റിന് എൻഡ്‌പോയിന്റും പ്രവേശന വിവരങ്ങളും വേറിട്ട ആർഗ്യുമെന്റുകളായി സ്വീകരിക്കാം:

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()

ഇതുവഴി userinfo ഭാഗം സ്വയം നിർമ്മിക്കേണ്ടതില്ല. ഇത് പ്രവേശന വിവരങ്ങളെ പ്രോക്സി കണക്ഷനിൽനിന്ന് സ്വതന്ത്രമായി എൻക്രിപ്റ്റ് ചെയ്യുന്നില്ല; എല്ലാ സേവനങ്ങളും പിന്തുണയ്ക്കുന്ന പ്രാമാണീകരണ രീതിയും തിരഞ്ഞെടുക്കുന്നില്ല.

സൗജന്യ പട്ടിക IP-യും പോർട്ടും മാത്രം നൽകിയാൽ ഈ ഉദാഹരണം ഡീഫോൾട്ട് പ്രവേശന വിവരങ്ങൾ നൽകുന്നില്ല. ഓപ്പറേറ്റർ യഥാർത്ഥത്തിൽ അക്കൗണ്ട് നൽകുമ്പോൾ മാത്രം പ്രാമാണീകരണം ഉപയോഗിക്കുക. പ്രവേശന വിവരമുള്ള URL-കൾ പങ്കിട്ട ലോഗുകളിലോ സോഴ്സ് ഫയലുകളിലോ ഇടരുത്.

അനുബന്ധ ലേഖനങ്ങൾ