ใช้คุกกี้และพร็อกซีใน urllib opener เดียวของ Python
รวม ProxyHandler และ HTTPCookieProcessor ไว้ใน urllib opener เดียว เพื่อให้คำขอผ่านพร็อกซีที่เกี่ยวข้องใช้โถคุกกี้ที่ตั้งใจร่วมกัน
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 ของออบเจ็กต์นี้จะรักษาพร็อกซีและคุกกี้ให้ผูกกับการดำเนินการเดียวกัน