சிறிய 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க்கு மாறுவது வாழ்க்கைச் சுழற்சியை மாற்றுகிறது: அழைப்பவர் ஓடைப் பதிலைப் படித்து விடுவிக்க வேண்டும்.

கேட்கும் சேவைக்கேற்ப நிர்வாகியைத் தேர்ந்தெடுக்கவும். வேறு இடத்தில் URL சேமித்ததால் சாதாரண PoolManager ப்ராக்ஸியை அறிந்ததாக மாறாது; SOCKS urllib3.contrib.socks.SOCKSProxyManager மற்றும் அதன் விருப்பச் சார்புகளைப் பயன்படுத்தும். மேலுள்ள குறியீடு HTTP ProxyManager பாதையைப் பின்பற்றுகிறது.

தொடர்புடைய கட்டுரைகள்