Scrapy lè fi ìtọ́nisọ́nà hàn kí ó tó tẹ̀lé e
Ṣí ìpínlẹ̀ ìtọ́nisọ́nà àkọ́kọ́ àti Location ti GET nípasẹ̀ proxy fún àkókò díẹ̀ nípasẹ̀ metadata ìbéèrè, ní pípín ìṣàkóso ìtọ́nisọ́nà sọ́tọ̀ kúrò nínú àlẹ̀mọ́ àṣìṣe HTTP.
GET nípasẹ̀ proxy lè dé ọ̀dọ̀ olùpèsè kan lẹ́yìn náà tẹ̀lé àwọn ìtọ́nisọ́nà títí àbáyọ àkọ́kọ́ yóò fi bo ìdáhùn àkọ́kọ́. Ṣí ìdáhùn àkọ́kọ́ yẹn fún àyẹ̀wò:
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],
},
)
Ṣètò ìbéèrè yìí nípasẹ̀ ìṣàn ìbẹ̀rẹ̀ tàbí callback tí ó wà tẹ́lẹ̀ ti spider. Fún àyẹ̀wò ojú-ìwé gbogbogbò tí a gbà láàyè, àkójọ proxy HTTP ń pèsè àwọn olùdíje fún URL proxy ti ìbéèrè. inspect_redirect yẹ kí ó ṣàkọsílẹ̀ ipò ìdáhùn àti orí Location dípò títẹ̀lé e lẹ́ẹ̀kan sí i ní àfọ́jú.
dont_redirect dá ìtọ́nisọ́nà àìfarabalẹ̀ dúró fún ìbéèrè yìí. handle_httpstatus_list jẹ́ kí àwọn ipò tí a dárúkọ dé callback dípò kí àlẹ̀mọ́ àṣìṣe HTTP kọ̀ wọ́n. Àwọn ètò wọ̀nyí kan àwọn ojúṣe middleware ọ̀tọ̀ọ̀tọ̀.
Ṣàyẹ̀wò ohun tí ìtọ́nisọ́nà yàn: URL canonical tí a ní lọ́kàn, ètò tàbí orúkọ agbàlejò mìíràn, ojú-ìwé ìwọlé, tàbí àyíká tí ń tún ṣẹlẹ̀. 302 tí a gbà lẹ́yìn gbígbé àṣeyọrí jẹ́ àkíyèsí ọ̀tọ̀ sí ìkùnà láti ṣí ìsopọ̀ proxy.
Nígbà tí a bá dá ìṣàkóso ìtọ́nisọ́nà déédé padà, Scrapy ń ṣí redirect_urls àti redirect_reasons nínú metadata ìbéèrè ìdáhùn. Àwọn wọ̀nyí lè pa ọ̀nà sí àbáyọ ìkẹyìn mọ́ láìfi àwọn ìtọ́nisọ́nà ní àléébù fún gbogbo ìwádìí.
Ìdáhùn ìkẹyìn kì í ṣe ojú-ìwé tí ohun-èlò ní lọ́kàn ní àìfarabalẹ̀. Tọ́jú ibi tí a ń lọ àti àkóónú ìdáhùn pẹ̀lú àyẹ̀wò ìtọ́nà.