በፕሮክሲ የይለፍ ቃሎች ውስጥ ያሉ ልዩ ቁምፊዎች
@፣ ኮሎን፣ / እና # URLን እንዳያበላሹ የፕሮክሲ የተጠቃሚ ስምንና የይለፍ ቃልን ለየብቻ ኢንኮድ ያድርጉ።
የመግቢያ መረጃው ትክክል ቢሆንም፣ @ ወይም # ያለበት የይለፍ ቃል በእጅ የተሠራ የፕሮክሲ URLን ሊያበላሽ ይችላል። እነዚህ ቁምፊዎች በURL ውስጥ የራሳቸው ትርጉም ስላላቸው፣ ደንበኛው የይለፍ ቃሉን ክፍል እንደ አስተናጋጅ ስም ወይም fragment ሊተነትነው ይችላል።
ሁለቱን የመግቢያ መስኮች ለየብቻ ኢንኮድ ያድርጉ
ይህ ምሳሌ የ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ዎች በጋራ መዝገቦችና በምንጭ ፋይሎች አያስቀምጡ።