ပရောက်စီ 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 သည် သတ်မှတ်ထားသော အခြေအနေများကို HTTP အမှားစစ်ထုတ်ခြင်းဖြင့် ပယ်ချခံရမည့်အစား callback သို့ ရောက်ရှိစေသည်။ ဤဆက်တင်များသည် middleware ၏ မတူညီသော တာဝန်များနှင့် သက်ဆိုင်သည်။

ပြန်ညွှန်းခြင်းက ဘာကို ရွေးချယ်သည်ကို စစ်ဆေးပါ: ရည်ရွယ်ထားသော ကာနိုနီကယ် URL၊ မတူညီသော အစီအစဉ် သို့မဟုတ် လက်ခံစက်အမည်၊ လော့ဂ်အင် စာမျက်နှာ သို့မဟုတ် ထပ်ခါတလဲလဲ ဖြစ်နေသော သံသရာ။ အောင်မြင်သော ပို့ဆောင်မှုအပြီး ရရှိသော 302 သည် ပရောက်စီ ချိတ်ဆက်မှု ဖွင့်မရခြင်းနှင့် မတူညီသော လေ့လာတွေ့ရှိမှု ဖြစ်သည်။

ပုံမှန် ပြန်ညွှန်းခြင်း ကိုင်တွယ်မှု ပြန်လည်ထူထောင်သောအခါ Scrapy သည် တုံ့ပြန်မှု၏ တောင်းဆိုမှု မက်တာဒေတာတွင် redirect_urls နှင့် redirect_reasons ကို ဖော်ထုတ်သည်။ ယင်းတို့သည် စကင်ဖတ်မှု တစ်ခုလုံးအတွက် ပြန်ညွှန်းချက်များကို ပိတ်ထားစရာ မလိုဘဲ နောက်ဆုံး ရလဒ်ဆီသို့ လမ်းကြောင်းကို ထိန်းသိမ်းနိုင်သည်။

နောက်ဆုံး တုံ့ပြန်မှုသည် အပလီကေးရှင်း ရည်ရွယ်သော စာမျက်နှာ အလိုအလျောက် မဟုတ်ပါ။ ဦးတည်ရာနှင့် တုံ့ပြန်မှု အကြောင်းအရာကို လမ်းကြောင်း စစ်ဆေးမှုနှင့်အတူ ထားရှိပါ။

ဆက်စပ်ဆောင်းပါးများ