ה-middleware של פרוקסי HTTP ב-Scrapy קורא פרוקסי ממטא-נתוני הבקשה:

yield scrapy.Request(
    'https://example.com/',
    callback=self.parse,
    meta={'proxy': 'http://203.0.113.10:8080'},
)

החליפו את נקודת הקצה מהתיעוד והשאירו את ה-middleware פעיל. רשימת פרוקסי ה-HTTP מציעה מועמדים ציבוריים עבור כתובת ה-URL של בקשה זו. זה בוחר את המסלול של הבקשה; מאגר פרוקסי זקוק ללוגיקת בחירה נפרדת.

האימות עוקב אחרי נקודת הקצה שנבחרה

ה-middleware המובנה מטפל בהרשאות שמסופקות דרך כתובת ה-URL הנתמכת של הפרוקסי וכותרות ההרשאה הנלוות. ברחו מתווים שמורים בכתובת ה-URL והימנעו מתיעוד של אותה כתובת.

middleware נפרד לא אמור לשמור כותרת Basic עבור הפרוקסי הקודם לאחר שנקודת הקצה משתנה. תנו לשכבה אחת לנהל את המסלול ואת ההרשאות שלו יחד.

סדר הבחירה וברירות המחדל

אם middleware הורדה מותאם בוחר את הפרוקסי, הריצו אותו לפני שה-middleware הפרוקסי המובנה מעבד את הבקשה. בדקו את הסדר וה-API של הגרסה המותקנת; ייבואים מיושנים של scrapy.contrib שייכים לגרסאות ישנות יותר.

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

בדקו את התוצאה בפועל. שגיאה 407 נוגעת לאימות הפרוקסי, בעוד שמגבלת קצב או סירוב גישה של אתר יכולים להגיע לאחר שהמסלול עבד כראוי.

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