Opener urllib dapat merutekan permintaan melalui proxy dan memelihara cookie situs web pada saat yang sama. Beri ia kedua 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()

Contoh ini menggunakan tujuan HTTP biasa dan rute proxy eksplisitnya. Untuk pemeriksaan situs publik yang diizinkan tanpa autentikasi proxy, pilih kandidat dari daftar proxy HTTP untuk rute itu sambil mempertahankan toples cookie yang dimaksud. Gunakan kembali opener untuk permintaan berikutnya milik sesi situs web yang sama. Prosesor cookie mengekstrak cookie respons yang dapat diterima dan menambahkan yang berlaku ke permintaan berikutnya.

Membuat CookieJar kosong baru sebelum setiap panggilan membuang kesinambungan itu. Simpan toples bersama sesi yang diwakilinya; gunakan toples terpisah untuk akun atau alur kerja yang cookie-nya harus tetap terpisah.

CookieJar dasar menyimpan status di memori. Untuk persistensi antarjalannya program, pilih subkelas FileCookieJar yang sesuai dan simpan atau muat dengan sengaja.

Tidak perlu memasang opener global untuk pengaturan ini. Memanggil metode open objek ini menjaga proxy dan cookie tetap terikat pada operasi yang sama.

Artikel terkait