urllib opener สามารถส่งคำขอผ่านพร็อกซีและรักษาคุกกี้ของเว็บไซต์ได้ในเวลาเดียวกัน มอบตัวจัดการทั้งสองให้มัน:

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()

ตัวอย่างใช้ปลายทาง HTTP ธรรมดาและเส้นทางพร็อกซีที่ชัดเจน สำหรับการตรวจสอบเว็บไซต์สาธารณะที่ได้รับอนุญาตโดยไม่ต้องยืนยันตัวตนพร็อกซี ให้เลือกผู้สมัครจากรายการพร็อกซี HTTPสำหรับเส้นทางนั้นพร้อมรักษาโถคุกกี้ที่ตั้งใจไว้ ใช้ opener ซ้ำสำหรับคำขอภายหลังของเซสชันเว็บไซต์เดียวกัน ตัวประมวลผลคุกกี้จะดึงคุกกี้ตอบกลับที่ยอมรับได้และเพิ่มคุกกี้ที่เกี่ยวข้องในคำขอถัดไป

การสร้าง CookieJar ว่างใหม่ก่อนทุกการเรียกจะทิ้งความต่อเนื่องนั้นไป เก็บโถไว้คู่กับเซสชันที่มันเป็นตัวแทน ใช้โถแยกสำหรับบัญชีหรือเวิร์กโฟลว์ที่คุกกี้ควรแยกจากกัน

CookieJar พื้นฐานเก็บสถานะไว้ในหน่วยความจำ สำหรับความคงอยู่ระหว่างการรันโปรแกรม ให้เลือกคลาสย่อย FileCookieJar ที่เหมาะสมและบันทึกหรือโหลดอย่างตั้งใจ

ไม่จำเป็นต้องติดตั้ง opener แบบส่วนกลางสำหรับการจัดเรียงนี้ การเรียกเมธอด open ของออบเจ็กต์นี้จะรักษาพร็อกซีและคุกกี้ให้ผูกกับการดำเนินการเดียวกัน

บทความที่เกี่ยวข้อง