Scrapy-র কুকি জার একটি সেশনের, স্বয়ংক্রিয়ভাবে প্রক্সির নয়
একাধিক প্রক্সি ওয়ার্কফ্লো একই স্পাইডার শেয়ার করলে স্পষ্ট কুকি-জার পরিচয় বেছে নিন এবং সেই পরিচয় পরবর্তী রিকোয়েস্টে বহন করুন।
প্রক্সি বদলালে স্পাইডারের কুকি স্বয়ংক্রিয়ভাবে বদলায় না। একটি চলমান সেশনের জন্য এটি কাজে লাগতে পারে, আর একাধিক স্বাধীন সেশন একই স্পাইডার শেয়ার করলে এটি আশ্চর্যজনক হতে পারে।
Scrapy-র কুকি মিডলওয়্যার রিকোয়েস্টের cookiejar মেটাডেটা দিয়ে নির্বাচিত আলাদা জার সমর্থন করে। সেই কী-তে আপনার আসলে যে পরিচয় ধরে রাখতে চান তা দিন:
yield scrapy.Request(
'https://example.com/start',
meta={'proxy': selected_proxy, 'cookiejar': 'workflow-17'},
)
এন্ডপয়েন্ট ও জার-কি দুটি স্বাধীন পছন্দ। একটি অননুমোদিত পাবলিক ক্রল তার নির্বাচিত HTTP এন্ডপয়েন্ট HTTP প্রক্সি তালিকা থেকে নিতে পারে যেখানে সেই রুট অনুমোদিত; ওয়ার্কফ্লো তবুও জার-কির মালিক। এই সেশনে থাকা উচিত এমন পরবর্তী রিকোয়েস্টের একই জার-কি দরকার; আপনি তৈরি করা প্রতিটি নতুন রিকোয়েস্টে মেটাডেটা স্বয়ংক্রিয়ভাবে লেগে থাকে না। সব মিডলওয়্যার মেটাডেটা অন্ধভাবে কপি না করে ওয়ার্কফ্লোর প্রয়োজনীয় নির্দিষ্ট ফিল্ডগুলো বহন করুন।
প্রক্সি ঠিকানা জার-কি হিসেবে ব্যবহার করা কেবল একটি নীতি
ওই শর্টকাট এন্ডপয়েন্ট অনুযায়ী স্টেট দলবদ্ধ করে। এটি ব্যক্তি, অ্যাকাউন্ট বা পাবলিক এক্সিট অনুযায়ী দলবদ্ধ করে না। একটি প্রোভাইডার এন্ডপয়েন্ট এক্সিট ঘোরাতে পারে, এবং একাধিক অ্যাকাউন্ট একই এন্ডপয়েন্ট ব্যবহার করতে পারে।
স্থিতিশীল স্টেট দরকার এমন অনুমোদিত ওয়ার্কফ্লোর জন্য অ্যাকাউন্ট/সেশন শনাক্তকারী, জার শনাক্তকারী ও নির্বাচিত রুট আলাদাভাবে লিপিবদ্ধ করুন। পথের মাঝখানে রুট বদলানোর সিদ্ধান্ত নিলে অ্যাপ্লিকেশন সেশনের কী হওয়া উচিত তাও ঠিক করুন।
আলাদা জার আপনার সংজ্ঞায়িত দলগুলোর মধ্যে আকস্মিক কুকি শেয়ারিং প্রতিরোধ করে। তবে কোনো গন্তব্য অ্যাকাউন্ট বা অন্য অ্যাপ্লিকেশন ডেটার মাধ্যমে দুটি রিকোয়েস্ট সম্পর্কিত করতে পারবে না—এমন প্রতিশ্রুতি তারা দেয় না।
IP বদলানোর পরেও ভুল পৃষ্ঠা থেকে গেলে, সব কুকি মোছার বা পুরো প্রক্সি পুল বদলানোর আগে দেখুন কোন জার রিকোয়েস্ট পাঠিয়েছিল। ধরে রাখা স্টেট পৃষ্ঠাটি পুরোপুরি ব্যাখ্যা করতে পারে।