പ്രോക്സി പാസ്വേഡുകളിലെ പ്രത്യേക അക്ഷരങ്ങൾ
@, കോളൻ, സ്ലാഷ്, # എന്നിവ URL തകർക്കാതിരിക്കാൻ പ്രോക്സി ഉപയോക്തൃനാമവും പാസ്വേഡും വേർതിരിച്ച് എൻകോഡ് ചെയ്യുക.
പ്രവേശന വിവരങ്ങൾ ശരിയായാലും @ അല്ലെങ്കിൽ # അടങ്ങിയ പാസ്വേഡ് കൈകൊണ്ട് തയ്യാറാക്കിയ പ്രോക്സി 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-കൾ പങ്കിട്ട ലോഗുകളിലോ സോഴ്സ് ഫയലുകളിലോ ഇടരുത്.