কীভাবে Puppeteer (Node.js)-এ অথেনটিকেটেড প্রক্সি সেটআপ করবেন
Updated:
Puppeteer DevTools Protocol (CDP)-এর মাধ্যমে Chrome এবং Chromium নিয়ন্ত্রণ করে এবং HTTP 407 প্রক্সি প্রমাণীকরণের জন্য নেটিভ await page.authenticate({ username, password }) API সরবরাহ করে। page.authenticate()-এর সাথে --proxy-server=http://ip:port যুক্ত করলে কোনো বাহ্যিক ব্রাউজার এক্সটেনশন ছাড়াই আপনার Node.js স্ক্র্যাপারগুলো VinaProxy স্ট্যাটিক প্রক্সির মাধ্যমে রুট করা যায়।
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1টি IP৪০,০০০₫
- 5+ টি IP৩৫,০০০₫
- 10+ টি IP২৫,০০০₫
- 20+ টি IP২৫,০০০₫
- 50+ টি IP২৫,০০০₫
- 100+ টি IP২৫,০০০₫
- 200+ টি IP২৫,০০০₫
- 500+ টি IP২৫,০০০₫
- 1000+ টি IP২২,০০০₫
- 2000+ টি IP২০,০০০₫
- 1টি IP৪০,০০০₫
- 5+ টি IP৩৫,০০০₫
- 10+ টি IP২৫,০০০₫
- 20+ টি IP২৫,০০০₫
- 50+ টি IP২৫,০০০₫
- 100+ টি IP২৫,০০০₫
- 200+ টি IP২৫,০০০₫
- 500+ টি IP২৫,০০০₫
- 1000+ টি IP২২,০০০₫
- 2000+ টি IP২০,০০০₫
Puppeteer-এ দুই ধাপে প্রক্সি কনফিগারেশন
কখনোই --proxy-server লঞ্চ আর্গুমেন্টের ভেতরে user:pass@ যুক্ত করবেন না। এর পরিবর্তে, লঞ্চ করার সময় হোস্ট ও পোর্ট পাস করুন এবং Page ইনস্ট্যান্সে প্রমাণীকরণ সম্পন্ন করুন:
| ধাপ | Puppeteer কোড | কেন এটি গুরুত্বপূর্ণ |
|---|---|---|
| 1. Chromium লঞ্চ করুন | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Chromium-এর নেটওয়ার্ক সকেটকে আপনার VinaProxy প্রক্সির দিকে নির্দেশ করে |
| 2. পেজ প্রমাণীকরণ করুন | await page.authenticate({ username, password }) | HTTP 407 চ্যালেঞ্জের জন্য CDP ক্রেডেনশিয়াল সরবরাহ করে |
| 3. নেভিগেট করুন | await page.goto(url, { waitUntil: 'domcontentloaded' }) | অথেনটিকেটেড টানেলের মাধ্যমে টার্গেট URL লোড করে |
proxy-chain ব্যবহার করে বিভিন্ন ট্যাবে একাধিক প্রক্সি রোটেট করা
- মনে রাখবেন
page.authenticate()প্রতিটিPageট্যাবের জন্য আলাদা—browser.newPage()থেকে পাওয়া প্রতিটি নতুন ট্যাবে এটি কল করুন - একটিমাত্র Chromium প্রসেসের মধ্যে বিভিন্ন ইনকগনিটো কনটেক্সটে ভিন্ন ভিন্ন প্রক্সি ব্যবহার করতে,
proxy-chainnpm প্যাকেজ (anonymizeProxy()) দিয়ে প্রতিটিhttp://user:pass@ip:portURL র্যাপ করুন এবংbrowser.createBrowserContext({ proxyServer })-এproxyServerপাস করুন puppeteer-extraএবংpuppeteer-extra-plugin-stealth-এর সাথে সামঞ্জস্যপূর্ণ
ধাপে ধাপে
- 1
puppeteer.launch()-এ --proxy-server=http://ip:port পাস করুন
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });দিয়ে ব্রাউজার লঞ্চ করুন। - 2
নতুন পেজে await page.authenticate() কল করুন
const page = await browser.newPage();দিয়ে একটি ট্যাব খুলুন এবংawait page.authenticate({ username: 'USER', password: 'PASS' });কল করুন। - 3
এক্সিট IP অ্যাড্রেস পরীক্ষা করুন
await page.goto('https://vinaproxy.com/api/my-ip');রান করুন এবং প্রাপ্ত JSON যাচাই করুন। - 4
ব্রাউজার প্রসেস বন্ধ করুন
কাজ শেষ হলে
await browser.close();কল করুন।
সচরাচর জিজ্ঞাসিত প্রশ্নাবলী
Puppeteer কেন `ERR_NO_SUPPORTED_PROXIES` দেখায়?
--proxy-server=http://user:pass@ip:port-এর মধ্যে user:pass@ যুক্ত করলে এই ত্রুটি ঘটে। --proxy-server=http://ip:port পরিষ্কার রাখুন এবং await page.authenticate({ username, password })-এর মাধ্যমে ক্রেডেনশিয়াল পাস করুন।
`browser.newPage()` দিয়ে খোলা দ্বিতীয় ট্যাবে HTTP 407 ত্রুটি দেখা দেওয়ার কারণ কী?
page.authenticate() প্রতিটি ট্যাবের ক্ষেত্রে প্রযোজ্য। নতুন খোলা যেকোনো ট্যাবে নেভিগেট করার আগে await secondPage.authenticate({ username, password }) কল করুন।
হেডলেস Chrome স্ক্র্যাপিংয়ের জন্য VinaProxy প্রক্সিগুলো কি আনমিটারড?
হ্যাঁ। সকল Dedicated IPv4 এবং Static ISP প্ল্যানে আনলিমিটেড মাসিক ব্যান্ডউইথ অন্তর্ভুক্ত রয়েছে।
স্ট্যাটিক IP দিয়ে আপনার Node.js Puppeteer ফ্লিট পরিচালনা করুন
7টি দেশে তাৎক্ষণিক আনমিটারড Dedicated IPv4 এবং Static ISP প্রক্সি।
Puppeteer প্রক্সি কিনুন