Tek bir Python urllib açıcısında çerezleri ve proxy'yi kullanma
ProxyHandler ile HTTPCookieProcessor'ı tek bir urllib açıcısında birleştirin; böylece ilgili proksili istekler amaçlanan çerez kavanozunu paylaşsın.
Bir urllib açıcısı istekleri bir proxy üzerinden yönlendirebilir ve aynı anda sitenin çerezlerini tutabilir. Ona iki işleyiciyi de verin:
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()Örnek, sade bir HTTP hedefi ve bunun açık proxy rotasını kullanır. Proxy kimlik doğrulaması olmadan izin verilen bir genel site kontrolü için o rota için HTTP proxy listesinden bir aday seçin ve amaçlanan çerez kavanozunu koruyun. Aynı site oturumunun sonraki istekleri için opener'ı yeniden kullanın. Çerez işleyicisi kabul edilebilir yanıt çerezlerini çıkarır ve uygun olanları sonraki isteklere ekler.
Her çağrıdan önce yeni boş bir CookieJar oluşturmak bu sürekliliği çöpe atar. Kavanozu temsil ettiği oturumun yanında tutun; çerezleri ayrı kalması gereken hesaplar veya iş akışları için ayrı kavanozlar kullanın.
Temel bir CookieJar durumu bellekte tutar. Program çalışmaları arasında kalıcılık için uygun bir FileCookieJar alt sınıfı seçin ve onu bilerek kaydedin veya yükleyin.
Bu düzen için global bir opener kurmaya gerek yoktur. Bu nesnenin open yöntemini çağırmak proxy'yi ve çerezleri aynı işleme bağlı tutar.