מפתח urllib יכול לנתב בקשות דרך פרוקסי ולשמור עוגיות של אתר בו-זמנית. תנו לו את שני המטפלים:

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 של אובייקט זה משאירה את הפרוקסי והעוגיות קשורים לאותה פעולה.

מאמרים קשורים