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],
},
)
פּלאַנירט די בקשה דורך דעם עקסיסטירנדיקן start אָדער callback־פֿלאַס פֿון דער שפּין. פֿאַר אַ דערלויבטער פּובליק־בלאַט פּרובירונג צופֿירט HTTP־פּראָקסי ליסטע קאַנדידאַטן פֿאַר דעם פּראָקסי־URL פֿון דער בקשה. inspect_redirect זאָל רעקאָרדירן דעם ענטפֿער־סטאַטוס און דעם Location־קעפּל אַנשטאָט אים ווידער בלינד נאָכפֿאָלגן.
dont_redirect שטעלט אָפּ אויטאָמאַטישע איבערפֿירונג פֿאַר דער בקשה. handle_httpstatus_list לאָזט די גערופֿענע סטאַטוסן דערגרייכן דעם callback אַנשטאָט ווערן אָפּגעוואָרפֿן דורך HTTP־פֿעלער פֿילטערונג. די איינשטעלונגען באַטרעפֿן פֿאַרשיידענע middleware־פֿאַראַנטוואָרטלעכקייטן.
פּרוופֿט וואָס די איבערפֿירונג קלייבט אויס: אַ געמיינטע קאַנאָנישע URL, אַן אַנדער סכעמע אָדער האָסטנאָמען, אַ לאָגין־בלאַט, אָדער אַ חוזר־ציקל. אַ 302 באַקומען נאָך אַ געראָטענער איבערפֿירונג איז אַן אַנדער באַאַכטונג ווי דאָס נישט קענען עפֿענען די פּראָקסי־פֿאַרבינדונג.
ווען די נאָרמאַלע באַהאַנדלונג פֿון איבערפֿירונגען ווערט צוריקגעשטעלט, ווייזט Scrapy redirect_urls און redirect_reasons אין די בקשה־מעטאַדאַטן פֿון דער ענטפֿער. זיי קענען אָפּהיטן דעם וועג צו אַ לעצטן רעזולטאַט אָן איבערלאָזן איבערפֿירונגען אָפּגעשאַלט פֿאַר דער גאַנצער דורכקוק.
אַ לעצטע ענטפֿער איז נישט אויטאָמאַטיש דער בלאַט וואָס די אַפּליקאַציע האָט געמיינט. האַלט דעם ציל און דעם ענטפֿער־אינהאַלט צוזאַמען מיט דער ראָוטינג־דיאַגנאָז.