Gumamit ng cookies at proxy sa isang Python urllib opener
Pagsamahin ang ProxyHandler at HTTPCookieProcessor sa isang urllib opener upang ang magkakaugnay na kahilingang naka-proxy ay magbahagi ng nilalayong cookie jar.
Ang isang urllib opener ay makapagruruta ng mga kahilingan sa pamamagitan ng proxy at makapapanatili ng cookies ng website nang sabay. Bigyan ito ng dalawang handler:
from http.cookiejar import CookieJar
from urllib.request import (
HTTPCookieProcessor, ProxyHandler, build_opener,
)
cookies = CookieJar()
opener = build_opener(
ProxyHandler({"http": "http://proxy.example:8080"}),
HTTPCookieProcessor(cookies),
)
with opener.open("http://www.example.com/", timeout=10) as response:
body = response.read()Gumagamit ang halimbawa ng karaniwang HTTP destinasyon at ang tahasang ruta ng proxy nito. Para sa pinapayagang pagsusuri ng pampublikong site nang walang proxy authentication, pumili ng kandidato mula sa listahan ng HTTP proxy para sa rutang iyon habang pinapanatili ang nilalayong cookie jar. Gamitin muli ang opener para sa mga susunod na kahilingan ng parehong session ng website. Kinukuha ng processor ng cookie ang mga katanggap-tanggap na cookie sa tugon at idinadagdag ang mga naaangkop sa mga susunod na kahilingan.
Ang paggawa ng bagong walang laman na CookieJar bago ang bawat tawag ay itinatapon ang pagpapatuloy na iyon. Itabi ang jar kasama ng session na kinakatawan nito; gumamit ng hiwalay na jar para sa mga account o workflow na dapat manatiling hiwalay ang cookies.
Ang pangunahing CookieJar ay nag-iimbak ng estado sa memorya. Para sa pagpapatuloy sa pagitan ng mga pagpapatakbo ng programa, pumili ng angkop na subclass ng FileCookieJar at sadyang i-save o i-load ito.
Hindi kailangang mag-install ng global na opener para sa kaayusang ito. Ang pagtawag sa open method ng object na ito ay nagpapanatili ng proxy at cookies na nakakabit sa parehong operasyon.