Python urllib: HTTP ඉල්ලීම් සඳහා Basic ප්රොක්සි සත්යාපනය
Basic HTTP ප්රොක්සි අභියෝගය සඳහා පැහැදිලි urllib opener එකක් ගොඩනගා, මෙම සාමාන්ය HTTP හුවමාරුව HTTPS CONNECT සත්යාපනයෙන් වෙන්කර හඳුනාගන්න.
HTTP ප්රොක්සියෙන් එන Basic අභියෝගය සඳහා ProxyBasicAuthHandler භාවිත කරන්න. මෙම සාමාන්ය HTTP උදාහරණය මාර්ගය සහ ගිණුම එකම opener එකක තබා ගනී:
import os
from urllib.request import (
ProxyHandler, ProxyBasicAuthHandler,
HTTPPasswordMgrWithDefaultRealm, build_opener,
)
proxy_url = 'http://proxy.example:8080'
passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(
None, proxy_url,
os.environ['PROXY_USER'], os.environ['PROXY_PASSWORD'],
)
opener = build_opener(
ProxyHandler({'http': proxy_url}),
ProxyBasicAuthHandler(passwords),
)
with opener.open('http://example.com/', timeout=10) as response:
print(response.status)සැබෑ අන්ත ලක්ෂ්යය සහ ක්රියාකරු ලබා දෙන ගිණුම භාවිත කරන්න. මෙම හසුරුව ප්රොක්සි අභියෝගය සඳහා මුරපද කළමනාකරු භාවිත කරයි; අදහස් කළ ප්රොක්සි URI සහ realm ගලපන්න. ගමනාන්තයේ Basic සත්යාපනය වෙනත් හසුරුවක් භාවිත කරයි.
opener එක කෙලින්ම ඇමතීම මෙම සැකසුම දේශීයව තබා ගනී. ඉල්ලීමේ URL මැදිහත්කරු නොව වෙබ් අඩවිය ලෙසම පවතී. මෙම පැහැදිලි HTTP මාර්ගය Basic හුවමාරුව සංකේතනය නොකරයි.
මෙම උදාහරණයෙන් HTTPS උමං සහාය අනුමාන නොකරන්න. CONNECT අතරතුර 407 සැකසුමේදී, සාමාන්ය ගමනාන්ත ප්රතිචාරයට පෙර සිදු වේ; තෝරාගත් ඒකාබද්ධ කිරීම එහිදී සත්යාපනය හැසිරවිය යුතුය. වෙබ් අඩවියේ පිවිසුම් හසුරුව වෙනස් කිරීමෙන් එම පෙර අභියෝගය සකස් කළ නොහැක.
අක්තපත්ර දරන ප්රොක්සි URL පැරණි උදාහරණවල දක්නට ලැබෙන තවත් ආකෘතියකි. භාවිත කරන්නේ නම් URL බෙදුම්කරුව සරිලෙස කේතනය කර, සාදන ලද රහස් දරන URL සටහන්වලින් බැහැර තබන්න.