CDP-এর মাধ্যমে Playwright Java: নতুন ব্রাউজার কনটেক্সটে প্রক্সি সেট করা
একটি Chromium CDP এন্ডপয়েন্টে সংযোগ করুন, তারপর প্রক্সি-কনফিগার করা কনটেক্সট তৈরি করুন; কন্ট্রোল সংযোগ ও দূরবর্তী ব্রাউজারের আউটবাউন্ড রুট আলাদা রাখুন।
দূরবর্তী ব্রাউজারের দুটি নেটওয়ার্ক পথ থাকে: ব্রাউজার সেবার সাথে Java-র নিয়ন্ত্রণ সংযোগ, এবং ওয়েবসাইটে ব্রাউজারের অনুরোধ। দ্বিতীয়টি আপনি যে কনটেক্সট তৈরি করছেন সেটিতে সেট করুন।
এমন একটি Chromium সেবার জন্য যা CDP এন্ডপয়েন্ট প্রকাশ করে এবং নতুন কনটেক্সট অনুমোদন করে:
import com.microsoft.playwright.*;
import com.microsoft.playwright.options.Proxy;
try (Playwright playwright = Playwright.create()) {
Browser browser = playwright.chromium().connectOverCDP(cdpEndpoint);
try {
var options = new Browser.NewContextOptions().setProxy(
new Proxy("http://proxy.example:8080")
.setUsername(proxyUser)
.setPassword(proxyPassword));
try (BrowserContext context = browser.newContext(options)) {
context.newPage().navigate("https://www.example.org/");
}
} finally {
browser.close();
}
}
cdpEndpoint হলো ব্রাউজার সেবা যে বর্তমান এন্ডপয়েন্ট দেয় সেটি। এর প্রমাণীকরণ টোকেন ও প্রোটোকল ফরওয়ার্ড প্রক্সি অ্যাকাউন্ট থেকে স্বাধীন।
CDP সংযোগ কেবল Chromium-এ চলে। Playwright প্রোটোকলের এন্ডপয়েন্ট এর বদলে connect ব্যবহার করে; সেবার প্রোটোকল না দেখে URL প্রত্যয় বদলানো নির্ভরযোগ্য রূপান্তর নয়।
প্রক্সি অবশ্যই দূরবর্তী ব্রাউজারের হোস্ট থেকে পৌঁছানো যাবে এমন হতে হবে। Java মেশিনে লুপব্যাক লিসেনার সেখানে স্বয়ংক্রিয়ভাবে পাওয়া যায় না। নতুন কনটেক্সটের সেটিং আগে থেকেই থাকা ডিফল্ট কনটেক্সট বা Java-র WebSocket সংযোগও পুনরায় কনফিগার করে না।