Python urllib: àkópọ̀ ìtọ́sọ́nà proxy pẹ̀lú Basic Authentication wẹ́ẹ̀bù
Àkópọ̀ ìtọ́sọ́nà urllib àti Basic authentication ibi tí a ń lọ nínú opener kan tí ó ṣe kedere láìyí opener gbogbogbò padà lẹ́ẹ̀mejì.
Pípe install_opener() lẹ́ẹ̀mejì kò fi opener kejì kún ti àkọ́kọ́. Ó rọ́pò opener àìpé ti module. Bí ohun kan bá mọ proxy tí òmíràn sì mọ ìwọlé wẹ́ẹ̀bù, kọ́ opener kan tí ó ní àwọn handler tó yẹ.
import os
from urllib.request import (ProxyHandler, HTTPBasicAuthHandler,
HTTPPasswordMgrWithDefaultRealm, build_opener)
passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(None, 'https://example.com/private/',
os.environ['SITE_USER'], os.environ['SITE_PASSWORD'])
opener = build_opener(
ProxyHandler({'https': 'http://203.0.113.10:8080'}),
HTTPBasicAuthHandler(passwords),
)
with opener.open('https://example.com/private/report', timeout=10) as response:
body = response.read()proxy àti ibi tí a ń lọ jẹ́ àpẹẹrẹ. Fún iṣẹ́ gbogbogbò tí a lè dé nípasẹ̀ HTTP proxy gbogbogbò, àkójọ proxy HTTP ń pèsè àwọn endpoint tó yẹ fún handler ìtọ́sọ́nà. Opener yìí ń darí ìbéèrè HTTPS nípasẹ̀ HTTP proxy ó sì ń bójú tó ìpèníjà Basic ti ibi tí a ń lọ. Kò ṣètò ìjẹ́rìí proxy.
Bí proxy pẹ̀lú bá nílò ìwọlé, yan ètò ìjẹ́rìí proxy tí a ṣe àtìlẹ́yìn fún lọ́tọ̀. 407 ní àkókò CONNECT ń ṣẹlẹ̀ kí ibi tí a ń lọ tó lè gbé ìpèníjà tirẹ̀ jáde. Fífi àwọn ẹ̀rí wẹ́ẹ̀bù kún olùdarí ọ̀rọ̀ìpamọ́ kò lè tẹ́ àgbàǹpadà ìṣáájú yẹn lọ́rùn.
Pípe opener.open() tààrà ń pa ìṣètò mọ́ pẹ̀lú iṣẹ́. Kò pọn dandan láti yí àìpé module kíkún padà àyàfi bí ohun èlò bá fẹ́ ní ìmọ̀ọ́mọ̀ kí gbogbo ìpè ìrọ̀rùn pín opener yìí.