ለአነስተኛ urllib3 ፕሮክሲ ምርመራ ProxyManagerን ድጋሚ ሙከራዎች አጥፍተው ይጠቀሙ። ይህ የማይሠራ መዝገብ ላይ ብዙ ጊዜ ደጋግሞ ከመሞከር ይልቅ የመጀመሪያውን ሙከራ ያሳያል። በuv በሚተዳደር ፕሮጀክት፦

uv add urllib3

የሰነዱን መገናኛ ከአገልግሎትዎ ወይም ከHTTP ፕሮክሲ ዝርዝር በተወሰደ HTTP ፕሮክሲ ይተኩ፣ ጥያቄውንም በዚያ አስተዳዳሪ ያካሂዱ፦

import urllib3

proxy = urllib3.ProxyManager(
    "http://203.0.113.10:8080",
    timeout=urllib3.Timeout(connect=5, read=10),
    retries=False,
)

try:
    response = proxy.request("GET", "https://example.com/")
    print(response.status)
    print(response.data.decode("utf-8", errors="replace")[:200])
finally:
    proxy.clear()

በመጀመሪያ response.statusን ያንብቡ፣ ከዚያ response.dataን ይፈትሹ። እነዚህ የurllib3 መስኮች ናቸው፤ የRequests ቅርጽ ያላቸው status_codeና text አይተኳቸውም። የድረ ገጽ እምቢታ በሚሠራ ፕሮክሲ ሊደርስ ይችላል። ከምላሽ በፊት የሚነሳ ልዩ ስህተት ግን ጥያቄው እንዳልተጠናቀቀ ያሳያል።

retries=False የምርመራ ምርጫ እንጂ ለሥራ አካባቢ የድጋሚ ሙከራ ፖሊሲ አይደለም። የ5 ሰከንድ ግንኙነትና የ10 ሰከንድ ንባብ ቅንብሮች የየራሳቸውን ደረጃ ይገድባሉ፤ የተረጋገጠ አጠቃላይ 15 ሰከንድ ገደብ አይፈጥሩም። DNSና የምላሽ እድገት ጠቅላላ መጠበቂያውን ሊነኩ ይችላሉ።

ምሳሌው አካሉን አስቀድሞ ይጭናል፣ በመጨረሻም የአስተዳዳሪውን የግንኙነት ገንዳዎች ያጸዳል። በአንድ መገናኛ ለሚደጋገሙ ጥያቄዎች ግንኙነቶቹ ዳግም እንዲጠቀሙ አስተዳዳሪውን ሥራው እስኪያልቅ ያቆዩ። ወደ preload_content=False መቀየር የሕይወት ዑደቱን ይቀይራል፤ ጠሪው የሚፈሰውን ምላሽ ማንበብና መልቀቅ አለበት።

አስተዳዳሪውን ከሚያዳምጠው አገልግሎት ጋር ያዛምዱ። መደበኛ PoolManager URL ሌላ ቦታ ስለተቀመጠ ብቻ ፕሮክሲ አይጠቀምም፤ SOCKS urllib3.contrib.socks.SOCKSProxyManagerን እና አማራጭ ጥገኞቹን ይጠቀማል። ከላይ ያለው ኮድ የHTTP ProxyManager መንገድን ይከተላል።

ተዛማጅ ጽሑፎች