jsoup-এ HTTP প্রক্সির মাধ্যমে পৃষ্ঠা আনা
jsoup-এর অনুরোধ-স্তরের HTTP প্রক্সি API ব্যবহার করুন এবং একাধিক ওয়ার্কার সেশন সেটিংস ভাগ করলে আলাদা অনুরোধ তৈরি করুন।
jsoup HTTP প্রক্সির মাধ্যমে পৃষ্ঠাটি আনতে এবং একই কলে প্রতিক্রিয়া পার্স করতে পারে:
Document page = Jsoup.connect("https://www.example.com/")
.proxy("proxy.example", 8080)
.get();
হোস্টনেম এবং পূর্ণসংখ্যা পোর্ট প্রক্সি চিহ্নিত করে। অনুমোদিত পাবলিক পৃষ্ঠার অনুরোধের জন্য আপনার সেবা অথবা HTTP প্রক্সি তালিকা থেকে একটি HTTP এন্ডপয়েন্ট নির্বাচন করুন। connect-এ দেওয়া URL আপনার কাঙ্ক্ষিত পৃষ্ঠাই থাকে। কেবল এই রুট যোগ করতে আলাদা URLConnection দিয়ে HTML কে স্ট্রিং-এ ডাউনলোড করার দরকার নেই।
proxy(String, int) সেই অনুরোধের জন্য HTTP প্রক্সি নির্বাচন করে। 1080-এর মতো পোর্ট নম্বর এর প্রোটোকল SOCKS-এ বদলায় না; প্রক্সি এন্ডপয়েন্টকে কনফিগার করা ধরনটিই বলতে হবে। jsoup java.net.Proxy গ্রহণ করা একটি ওভারলোডও দেয়, তবে নির্দিষ্ট রুটের সমর্থন এখনও ব্যবহৃত HTTP বাস্তবায়নের উপর নির্ভর করে।
প্রতিটি ওয়ার্কারকে নিজের অনুরোধ দিন
অনুরোধ-স্তরের বিকল্প প্রতিটি ডাউনলোডের চারপাশে JVM সিস্টেম বৈশিষ্ট্য বদলানোর চেয়ে সমান্তরাল কাজ সহজ করে। পরিবর্তনযোগ্য অনুরোধ প্রতিটি ওয়ার্কারের জন্য আলাদা রাখুন। আধুনিক jsoup নতুন অনুরোধ তৈরি করার সময় সেশনের সেটিংস ও কুকি ভান্ডার ভাগ করতে পারে:
Connection session = Jsoup.newSession();
Document first = session.newRequest()
.url("https://www.example.com/one")
.proxy("proxy-a.example", 8080)
.get();
Document second = session.newRequest()
.url("https://www.example.com/two")
.proxy("proxy-b.example", 8080)
.get();
উপরের কলগুলি স্পষ্টতার জন্য ক্রমানুসারে চলে। কাজ একসাথে বিতরণ করা হলে চলমান একটি Connection-এ প্রক্সি বদলানোর বদলে অনুরোধগুলি স্বতন্ত্রভাবে তৈরি করুন। ভাগ করা সেশন কুকিও ভাগ করে; ব্রাউজিং পরিচয় আলাদা থাকা উচিত হলে ভিন্ন সেশন ব্যবহার করুন।
এই ইন্টারফেসগুলি jsoup 1.21.2-এ আছে। কোনো আর্গুমেন্ট ছাড়া newRequest() ইন্টারফেস 1.14.1 থেকে, তাই পুরোনো অ্যাপ্লিকেশনের সেশনের উদাহরণ গ্রহণের আগে তার নির্ভরতা পরীক্ষা করা উচিত।
প্রমাণপত্র প্রমাণিত প্রক্সির জন্য আরও একটি শর্ত। সফল রুট নির্বাচন অ্যাকাউন্ট সরবরাহ করে না, এবং প্রক্সি চ্যালেঞ্জ পাওয়া তার পোর্টে সংযোগ করতে ব্যর্থ হওয়ার থেকে আলাদা।