په پروکسي چیکرونو کې د urllib opener نړیوال بدلونونه مه کوئ
د urllib پروکسي ازموینې د پروسې په ټولیز ډول د لارښوونې او وخت د تلواليزو بدلولو پر ځای په خپل opener کې وساتئ.
from urllib.request import ProxyHandler, build_opener
def make_proxy_opener(proxy_uri):
return build_opener(ProxyHandler({
"http": proxy_uri,
"https": proxy_uri,
}))
opener = make_proxy_opener("http://proxy.example.net:8080")
# Use opener.open(destination, timeout=10) for this route.کله چې لار د ازموینې وي، د دې opener خپله open طریقه وبلئ. د بېلګې HTTP پای ټکی کېدای شي ستاسو له خدمت یا د عامه ازموینو لپاره د HTTP پروکسي لیست څخه راشي. دا ټوټه مالکیت ښیي؛ دا بشپړ تصدیق یا روغتیا تګلاره نه ټاکي. هر هغه handler چې ځانګړی حساب وي له هغه پام شوي client سره وتړئ.
urllib.request.install_opener() هغه پروسي ټولیز تلوالیز بدلوي چې وروسته د module کچې urlopen() غوښتنې یې کاروي. نو ځکه د پروکسي څخه تېرېدونکی چیکر کولای شي نااړوند غوښتنې د خپل وروستي پای ټکي سره پرېږدي. لنډمهاله نصب او د پاکولو پر مهال بېرته راګرځول بیا هم اجازه ورکوي چې هممهاله غوښتنې د شریک بدلون پر مهال وګرځي.
socket.setdefaulttimeout() همدا راز د هغو socket لپاره تلوالیزونه بدلوي چې وروسته جوړیږي. کله چې یوازې ازموینه باید دا ترلاسه کړي، د عملیات کچې وخت وکاروئ.
د ازموینې ځوابونه وتړئ او پایلې مشخصې وساتئ: د HTTP خطا ځواب په اتوماتيک ډول مړ پروکسي اورېدونکی نه دی. که په async خدمت کې synchronous urllib ازموینه وکارول شي، بندوونکی کار مناسب worker ته یوسئ؛ هغه اجرایي پرېکړه نړیوال opener بدلون جلا نه کوي.
ازموینه باید خپله کتنه بیرته راوګرځوي پرته له دې چې بله شبکه تګلاره پریږدي. د هغې خپل client شی او محدود عملیات هغه پوله روښانه کوي.