Scrapy יכול להציג את ההפניה לפני שהוא עוקב אחריה
חשוף באופן זמני את סטטוס ההפניה הראשוני ואת כותרת Location של בקשת GET דרך פרוקסי באמצעות מטא-נתוני הבקשה, תוך שמירה על טיפול בהפניות בנפרד מסינון שגיאות HTTP.
בקשת GET דרך פרוקסי יכולה להגיע לשרת ואז לעקוב אחר הפניות עד שהכשל הסופי מסתיר את התגובה הראשונה. חשוף את התגובה הראשונית הזו לצורך אבחון:
request = scrapy.Request(
'https://service.example/page',
callback=inspect_redirect,
meta={
'proxy': 'http://proxy.example:8080',
'dont_redirect': True,
'handle_httpstatus_list': [301, 302, 303, 307, 308],
},
)
תזמן את הבקשה הזו דרך זרימת ההתחלה או ה-callback הקיימת של העכביש. לבדיקה מורשית של עמוד ציבורי, רשימת פרוקסי HTTP מספקת מועמדים עבור כתובת ה-URL של הפרוקסי בבקשה. inspect_redirect אמור לתעד את סטטוס התגובה ואת כותרת Location במקום לעקוב אחריה שוב בעיוורון.
dont_redirect עוצר הפניה אוטומטית עבור בקשה זו. handle_httpstatus_list מאפשר לסטטוסים הנקובים להגיע ל-callback במקום להידחות על ידי סינון שגיאות HTTP. ההגדרות נוגעות לאחריויות שונות של ה-middleware.
בדוק מה ההפניה בוחרת: כתובת URL קנונית מיועדת, סכימה או שם מארח שונים, עמוד התחברות, או מחזור חוזר. תגובת 302 שמתקבלת לאחר העברה מוצלחת היא תצפית שונה מכישלון לפתוח את חיבור הפרוקסי.
כאשר טיפול ההפניות הרגיל משוחזר, Scrapy חושף את redirect_urls ו-redirect_reasons במטא-נתוני הבקשה של התגובה. אלה יכולים לשמר את הנתיב לתוצאה סופית בלי להשאיר הפניות מושבתות לאורך כל הסריקה.
תגובה סופית אינה אוטומטית העמוד שהאפליקציה התכוונה אליו. שמור את היעד ואת תוכן התגובה יחד עם אבחון הניתוב.