urllib3 සමඟ ප්රොක්සි IP භාවිත කරන්න
HTTP ප්රොක්සියකට ProxyManager තෝරා urllib3 පිළිතුරු ක්ෂේත්ර බලන්න; නැවත උත්සාහ හා SOCKS හි වෙනම කළමනාකරු සලකන්න.
කුඩා 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 මාර්ගයේ යයි.