একটি Scrapy অনুরোধ সফলভাবে Splash-এ পৌঁছাতে পারে, অথচ Splash-এর ভিতরের ব্রাউজারের এখনও ভিন্ন একটি বহির্গামী রুট দরকার। এগুলো দুটি সংযোগ:

Scrapy → Splash API
Splash browser → forward proxy → website

প্রতি রেন্ডারে একটি প্রক্সির জন্য HTTP API-এর proxy আর্গুমেন্ট দিন। Splash 3.5 http://proxy.example:8080-এর মতো একটি প্রক্সি 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 হোস্টনাম হিসেবে এবং special_resource-কে পৃথকভাবে রুট করা সঠিক রিসোর্স URL হিসেবে দিন। দুটি লিসেনার আলাদা হলে উদাহরণের একক পোর্টটি প্রতিস্থাপন করুন। অন্যান্য রিসোর্স ডিফল্ট রুট পায়। HTTP প্রক্সি তালিকা এই হোস্ট ও পোর্ট ক্ষেত্রগুলোর জন্য এন্ডপয়েন্ট প্রার্থী দেয়, যখন পাবলিক রিসোর্স রুট অনুমোদিত এবং প্রার্থীদের উপর কোনো প্রক্সি শংসাপত্র প্রয়োগ করা হয় না।

request পদ্ধতি ঐচ্ছিক username ও password ক্ষেত্র গ্রহণ করে। HTTP ধরনের সঙ্গে HTTPS গন্তব্যগুলো ওই HTTP প্রক্সির মাধ্যমে CONNECT ব্যবহার করে; তাদের বানানো HTTPS প্রক্সি ধরনের প্রয়োজন নেই।

কলব্যাক প্রতিটি অনুরোধের আগে চলে। এর request পদ্ধতিগুলো পাঠানোর পরে অনুরোধ পরিবর্তন করতে পারে না, এবং কলব্যাক splash:go বা splash:wait-এর মতো অ্যাসিঙ্ক্রোনাস Splash পদ্ধতি ডাকতে পারে না।

পৃষ্ঠা যখন একটি সেশন বা উৎস পরিচয় আশা করে, তখন রুট নির্বাচন স্থিতিশীল রাখুন। প্রতিটি ছবি ও API অনুরোধকে এলোমেলোভাবে অন্য আউটলেটে বরাদ্দ করলে এমন একটি রেন্ডার করা পৃষ্ঠা তৈরি হতে পারে যার অনুরোধ আর একটি সুসংগত সেশনের অন্তর্গত নয়।

সম্পর্কিত নিবন্ধ