Scrapy တောင်းဆိုချက်သည် Splash သို့ ရောက်ရှိနိုင်သော်လည်း Splash အတွင်းရှိ ဘရောက်ဇာသည် မတူညီသော အပြင်ထွက်လမ်းကြောင်း လိုအပ်နေသေးသည်။ ဤသည်မှာ ချိတ်ဆက်မှု နှစ်ခုဖြစ်သည်။

Scrapy → Splash API
Splash browser → forward proxy → website

render တစ်ခုလျှင် proxy တစ်ခုအတွက် HTTP API ၏ proxy အချက်အလက်ကို ပေးပို့ပါ။ Splash 3.5 သည် http://proxy.example:8080 ကဲ့သို့ proxy URL သို့မဟုတ် ပြင်ဆင်ထားသော proxy-profile အမည်ကို မှတ်တမ်းတင်ထားသည်။ ၎င်း၏ URL ပုံစံသည် SOCKS5 နှင့် ရွေးချယ်နိုင်သော အထောက်အထားများကိုလည်း ပံ့ပိုးသည်။

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

function main(splash, args)
  splash:on_request(function(request)
    local host = args.default_proxy
    if request.url == args.special_resource then
      host = args.special_proxy
    end
    request:set_proxy{host = host, port = 8080, type = 'HTTP'}
  end)

  assert(splash:go(args.url))
  return splash:html()
end

default_proxy နှင့် special_proxy ကို host အမည်များအဖြစ်၊ special_resource ကို သီးခြားလမ်းကြောင်းသတ်မှတ်ရမည့် အရင်းအမြစ်၏ တိကျသော URL အဖြစ် ပေးပို့ပါ။ listener နှစ်ခု မတူညီပါက နမူနာရှိ ပေါက်တစ်ခုတည်းကို အစားထိုးပါ။ အခြားအရင်းအမြစ်များသည် မူရင်းလမ်းကြောင်းကို ရရှိသည်။ HTTP proxy စာရင်းသည် အများပြည်သူသုံး အရင်းအမြစ်လမ်းကြောင်းများ ခွင့်ပြုထားပြီး ကိုယ်စားလှယ်လောင်းများတွင် proxy အထောက်အထား မသုံးပါက ဤ host နှင့် port အကွက်များအတွက် အဆုံးမှတ် ကိုယ်စားလှယ်လောင်းများကို ပေးသည်။

request နည်းလမ်းသည် ရွေးချယ်နိုင်သော username နှင့် password အကွက်များကို လက်ခံသည်။ HTTP အမျိုးအစားဖြင့် HTTPS ပန်းတိုင်များသည် ထို HTTP proxy မှတစ်ဆင့် CONNECT ကို အသုံးပြုသည်။ ၎င်းတို့သည် လုပ်ကြံထားသော HTTPS proxy အမျိုးအစား မလိုအပ်ပါ။

ခေါ်ဆိုမှုသည် တောင်းဆိုမှုတစ်ခုစီမတိုင်မီ လုပ်ဆောင်သည်။ ၎င်း၏ request နည်းလမ်းများသည် ပို့ပြီးသား တောင်းဆိုမှုကို မပြောင်းလဲနိုင်သလို ခေါ်ဆိုမှုသည် splash:go သို့မဟုတ် splash:wait ကဲ့သို့ အချိန်မတူညီသော Splash နည်းလမ်းများကို ခေါ်၍မရပါ။

စာမျက်နှာက session တစ်ခု သို့မဟုတ် ရင်းမြစ်အထောက်အထား တစ်ခုကို မျှော်လင့်သောအခါ လမ်းကြောင်းရွေးချယ်မှုကို တည်ငြိမ်စွာထားပါ။ ပုံတစ်ခုစီနှင့် API တောင်းဆိုမှုတစ်ခုစီကို အခြားအပြင်ထွက်သို့ ကျပန်းသတ်မှတ်ခြင်းသည် တောင်းဆိုမှုများ သည် ညီညွတ်သော session တစ်ခုတွင် မပါဝင်တော့သော render လုပ်ထားသည့် စာမျက်နှာကို ဖြစ်ပေါ်စေနိုင်သည်။

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