Puppeteer browser တစ်ခုတည်းက သီးခြား proxy context များကို ထိန်းထားနိုင်သည်
Chromium browser တစ်ခုအတွင်း စာမျက်နှာအုပ်စုများက မတူညီသော proxy လမ်းကြောင်းများ လိုအပ်သောအခါ Puppeteer25.16.0 ရှိ BrowserContextOptions.proxyServer ကို အသုံးပြုပါ။
Puppeteer 25.16.0 သည် browser context တစ်ခု ဖန်တီးသောအခါ proxyServer ရွေးချယ်မှုကို ဖော်ထုတ်ပေးသည်။ လက်ရှိ Chromium browser တွင် context အသစ်၏ စာမျက်နှာများသည် ရွေးချယ်ထားသော ကြားခံကို အသုံးပြုနိုင်ပြီး HTTP proxy စာရင်းမှ အများသုံး HTTP ကိုယ်စားလှယ်လောင်းလည်း ပါဝင်သည်:
const context = await browser.createBrowserContext({
proxyServer: 'http://proxy.example:8080',
});
try {
const page = await context.newPage();
await page.goto('https://www.example.com/');
} finally {
await context.close();
}ဒုတိယလမ်းကြောင်းအတွက် အခြား proxyServer တစ်ခုဖြင့် နောက်ထပ် context တစ်ခု ဖန်တီးပါ။ context တစ်ခုတည်းတွင် ဖန်တီးထားသော စာမျက်နှာနှစ်ခုသည် ထို context ၏ proxy မူဝါဒကို မျှဝေသည်။ tab အသစ်တစ်ခု ဖွင့်ရုံဖြင့် endpoint အသစ်ကို ရွေးချယ်ခြင်း မဟုတ်ပါ။
ရွေးချယ်မှု၏ အမည်မှာ proxyServer ဖြစ်သည်။ createIncognitoBrowserContext ဥပမာဟောင်းများသည် ယခင် API မျိုးဆက်နှင့် သက်ဆိုင်သည်။
BrowserContextOptions သည် proxyBypassList ကိုလည်း လက်ခံသည်။ တိုက်ရိုက် ခြွင်းချက်များကို အခြား context မှ လာသည်ဟု မယူဆဘဲ ထို context ၏ မူဝါဒထဲတွင် ထားပါ။
အသုံးပြုသူအမည်နှင့် စကားဝှက် ပံ့ပိုးထားသော HTTP proxy အတွက် Page.authenticate သည် လမ်းညွှန်မှု မပြုမီ အထောက်အထားများကို ပေးသည်။ proxy URL က ကြားခံကို ရွေးချယ်ပြီး စစ်မှန်ကြောင်း အတည်ပြုသည့် ခေါ်ဆိုမှုက အကောင့်ကို ပေးသည်။
ဤသည် browser ကွန်ရက်ဖြစ်သည်။ စာမျက်နှာ တောင်းဆိုချက်ကို ကြားဖြတ်ပြီး Node HTTP client ၏ တုံ့ပြန်ချက်ဖြင့် ဖြည့်ဆည်းပေးသော package သည် ကိုယ်ပိုင် cookie၊ header နှင့် TLS အပြုအမူရှိသော သီးခြား ပို့ဆောင်ရေးလမ်းကြောင်းကို ဖန်တီးသည်။
မျှဝေထားသော browser ၏ သက်တမ်းအတွက် ခေါ်ဆိုသူက ဆက်လက်တာဝန်ရှိသည်။ context တစ်ခုကို ပိတ်ခြင်းသည် ၎င်း၏ ဆက်စပ်စာမျက်နှာများကို ပိတ်သော်လည်း အခြား context များကို အဆုံးသတ်ခြင်း မရှိပါ။