Floppydata Floppydata

সেশন বিনামূল্যে — মূল্য দিন শুধু ট্রাফিকের জন্য

Playwright ক্লাউডে চালান

আপনার Playwright স্ক্রিপ্ট ও টেস্টগুলো Floppydata ক্লাউডে চলা Chromium-এর দিকে নির্দেশ করুন। একটি API রিকোয়েস্ট ব্রাউজার চালু করে, connectOverCDP() তাতে কানেক্ট করে, আর আপনার বাকি কোড যেমন আছে তেমনই থাকে।

  • connectOverCDP() দিয়ে কানেক্ট করুন — কোনো ব্রাউজার ইনস্টল করতে হবে না
  • Node.js, Python এবং Playwright Test
  • Floppydata প্রক্সির সাথে বিনামূল্যে — আপনি শুধু ট্রাফিকের জন্য পেমেন্ট করেন

কীভাবে Playwright ক্লাউডে চালাবেন

একটি API রিকোয়েস্টে সেশন তৈরি করুন, তারপর এর connectUrl Playwright-কে দিন। উদাহরণটি আমাদের ডকুমেন্টেশনের Cloud Browser গাইড অনুসরণ করে।

তিনটি ধাপ

  1. 1 আপনার Floppydata অ্যাকাউন্টে একটি Client API key তৈরি করুন।
  2. 2 POST /v2/browser/sessions পাঠান। রেসপন্সে একটি connectUrl থাকে।
  3. 3 এটি connectOverCDP()-তে দিন এবং স্বাভাবিকভাবে কাজ করুন। ব্রাউজার বন্ধ করলে সেশন থেমে যায়।
run.mjs
import { chromium } from 'playwright';const res = await fetch('https://api.floppydata.net/v2/browser/sessions', {    method: 'POST',    headers: {        'X-Api-Key': process.env.FLOPPY_API_KEY,        'Content-Type': 'application/json',    },    body: JSON.stringify({        proxy: { type: 'residential', location: { countryCode: 'US' } },    }),});const { connectUrl } = await res.json();const browser = await chromium.connectOverCDP(connectUrl);const page = await browser.contexts()[0].newPage();await page.goto('https://example.com/');console.log(await page.title());await browser.close(); // stops the session

সেশন তৈরি, কানেক্ট, পেজ খোলা।

লোকাল Playwright থেকে ক্লাউড Playwright

লোকালি প্রতিটি Playwright worker নিজের Chromium চালু করে। টেস্ট স্যুট বা স্ক্র্যাপার বড় হলে এই ব্রাউজারগুলো CPU ও মেমরির জন্য প্রতিযোগিতা করে, আর প্রতিটি CI রানারকে আগে সেগুলো ডাউনলোড করতে হয়।

Floppydata Cloud Browser-এ Chromium রিমোটলি চলে। আপনার কোড Chrome DevTools Protocol দিয়ে কানেক্ট করে, তাই আপনার দিকে playwright-core-ই যথেষ্ট, আর প্রতিটি রান নিজস্ব ব্রাউজার সেশন পায়।

লোকাল Playwright আগে
const browser =
    await chromium.launch();
Floppydata Cloud Browser পরে
const browser =
    await chromium.connectOverCDP(connectUrl);

এই লাইনের পরের সবকিছু আগের মতোই থাকে। connectUrl আসে ওপরের সেশন তৈরির রিকোয়েস্ট থেকে।

বিল্ট-ইন প্রক্সি সহ Playwright

প্রতিটি সেশন Floppydata প্রক্সির মধ্য দিয়ে চলে, তাই Playwright-এ কোনো প্রক্সি সার্ভার সেট আপ করতে হয় না। IP-এর ধরন, দেশ ও রোটেশন বেছে নিন, আর ফলাফলটি সেশন তৈরির রিকোয়েস্টের বডি হিসেবে পাঠান।

আপনার Playwright ক্লাউড সেশন কনফিগার করুন

প্রক্সির ধরন
রোটেশন
POST /v2/browser/sessions
{
  "proxy": {
    "type": "residential",
    "location": {
      "countryCode": "US"
    },
    "rotation": {
      "mode": "sticky"
    }
  }
}

একই রিকোয়েস্টে শহর, স্টেট বা ASN-ও বেছে নেওয়া যায়। আবাসিক IP আছে 148টি দেশে, মোবাইল 150টিতে এবং ডেটাসেন্টার 71টিতে।

লোকাল বনাম ক্লাউড Playwright

লোকাল Playwright বনাম Floppydata Cloud Browser-এ Playwright
লোকাল Playwright Cloud Browser-এ Playwright
Chromium প্রতিটি মেশিনে ইনস্টল ও আপডেট করতে হয় Floppydata ক্লাউডে চলে
CI-তে ব্রাউজার প্রতিটি রানারে ডাউনলোড হয় দরকার নেই: playwright-core-ই যথেষ্ট
প্রক্সি প্রতিটি লঞ্চে আপনাকেই সেট আপ করতে হয় বিল্ট-ইন: আবাসিক, মোবাইল বা ডেটাসেন্টার
সমান্তরাল ব্রাউজার আপনার CPU ও RAM দিয়ে সীমিত প্রতি অ্যাকাউন্টে 100টি পর্যন্ত সেশন
ব্রাউজারের খরচ আপনার সার্ভারের সময় বিনামূল্যে: শুধু প্রক্সি ট্রাফিকের বিল হয়
কানেকশন Playwright প্রোটোকল, যেকোনো ব্রাউজার ইঞ্জিন connectOverCDP() দিয়ে CDP, শুধু Chromium

connectOverCDP() বেশিরভাগ স্ক্রিপ্ট যা করে তা কভার করে (নেভিগেশন, লোকেটর, ক্লিক, ফর্ম, অপেক্ষা ও JavaScript), তবে এটি পূর্ণ Playwright প্রোটোকল নয়। অস্বাভাবিক কিছু নিজের স্ক্রিপ্টে যাচাই করে নিন।

প্রতিটি সেশন স্কেল ও কাস্টমাইজ করুন

প্রতিটি সেটিং সেশন তৈরির রিকোয়েস্টের একটি ঐচ্ছিক ফিল্ড: শুধু দরকারিগুলো পাঠান, অথবা কিছুই না পাঠিয়ে পান একটি আবাসিক প্রক্সি, সামঞ্জস্যপূর্ণ ফিঙ্গারপ্রিন্ট এবং 10 মিনিটের টাইমআউট।

লাইভ ব্রাউজারে Playwright রান ডিবাগ করুন

কোনো স্ক্রিপ্ট যদি অপ্রত্যাশিত স্ক্রিনে থেমে যায়, যেমন কনসেন্ট ব্যানার বা লগইনের বাড়তি ধাপ, তাহলে নিজের ব্রাউজারে সেশনের লাইভ ভিউ খুলে দেখুন পেজটি ঠিক কী দেখাচ্ছে।

Playwright ও লাইভ ভিউ একই সেশন পালা করে ব্যবহার করে, তাই রান নতুন করে শুরু না হয়ে যেখানে থেমেছিল সেখান থেকেই চলতে থাকে। UI মোড সম্পর্কে আরও

  1. 1 keepAlive: true দিয়ে সেশন তৈরি করুন, যাতে ডিসকানেক্ট করলে সেটি থেমে না যায়।
  2. 2 কোনো রান অপ্রত্যাশিত স্ক্রিনে থেমে গেলে Playwright ডিসকানেক্ট করুন।
  3. 3 লাইভ ভিউ অনুরোধ করে খুলুন: পেজটি দেখুন এবং হাতে সামলান।
  4. 4 সেশনটি আবার নিন এবং নতুন connectUrl দিয়ে Playwright আবার কানেক্ট করুন।

Floppydata প্রক্সি ব্যবহারকারীদের জন্য বিনামূল্যে

Cloud Browser-এ কোনো সাবস্ক্রিপশন, রানটাইম বা প্রতি-সেশন ফি নেই। প্রতিটি সেশন Floppydata প্রক্সির মধ্য দিয়ে চলে, আর আপনি শুধু সেটি যে প্রক্সি ট্রাফিক ব্যবহার করে তার জন্য পেমেন্ট করেন: প্রতি GB $1.00 থেকে, আবাসিক, মোবাইল ও ডেটাসেন্টারের জন্য একই রেট।

আপনি যদি আগে থেকেই Floppydata প্রক্সি কেনেন, Cloud Browser তার অন্তর্ভুক্ত: একই ব্যালান্স, একই API key। এক অ্যাকাউন্টে একসাথে 100টি পর্যন্ত সেশন চালান, অথবা লিমিট বাড়াতে সাপোর্টকে বলুন।

সাধারণ Playwright ক্লাউড কানেকশন ত্রুটি

কিছু ভুল হলে API বা কানেকশন কী জানায়, আর তখন কী করতে হবে।

Cloud Browser কানেকশনের ত্রুটি এবং সেগুলো ঠিক করার উপায়
ত্রুটি এর অর্থ কী করবেন
unauthorized সাইন করা connectUrl-এর মেয়াদ শেষ হয়ে গেছে বা এটি অবৈধ। সেশনটি আবার নিন এবং এর নতুন connectUrl দিয়ে কানেক্ট করুন।
connection_in_use অন্য কোনো ক্লায়েন্ট বা লাইভ ভিউ আগে থেকেই কানেক্ট করা আছে: প্রতি সেশনে একটিই কানেকশন চলে। অন্য কানেকশনটি বন্ধ করুন, তারপর আবার চেষ্টা করুন।
session_not_active সেশনটি থেমে গেছে, মেয়াদ শেষ হয়েছে বা ব্যর্থ হয়েছে। নতুন সেশন তৈরি করুন; দীর্ঘ কাজের জন্য runtime.timeoutSeconds বাড়ান।
কানেকশন বন্ধ হয়ে যায় একটি মেসেজ প্রায় 1 MiB ছাড়িয়ে গেছে, যেমন পুরো পেজের স্ক্রিনশট বা স্ক্রিনকাস্টের একটি ফ্রেম। ভিউপোর্ট বা কোনো এলিমেন্টের স্ক্রিনশট নিন, অথবা দরকারি অংশটি ক্রপ করুন।
upstream_error ব্রাউজার সার্ভিসের একটি অপারেশন ক্ষণিকের জন্য ব্যর্থ হয়েছে। আবার চেষ্টা করুন: সেশন থামানো নিরাপদে বারবার করা যায়।

সচরাচর জিজ্ঞাসা

কোন কোন ব্রাউজার সাপোর্ট করে?
Chromium। সেশনগুলো Chrome DevTools Protocol দিয়ে কানেক্ট হয়, যা Playwright শুধু Chromium-এর জন্য সাপোর্ট করে, তাই Firefox ও WebKit প্রজেক্ট এগুলো ব্যবহার করতে পারে না। Puppeteer-ও একই সেশনগুলোতে কানেক্ট করে।
connect() এবং connectOverCDP()-এর পার্থক্য কী?
connect() Playwright-এর নিজস্ব প্রোটোকল ব্যবহার করে এবং অন্য প্রান্তে একটি Playwright সার্ভার লাগে। connectOverCDP() Chrome DevTools Protocol দিয়ে Chromium-এ কানেক্ট করে, আর Floppydata সেশন ঠিক এটিই দেয়, তাই connectOverCDP() (Python-এ connect_over_cdp()) ব্যবহার করুন। এটি নেভিগেশন, লোকেটর, ক্লিক, ফর্ম, অপেক্ষা ও JavaScript কভার করে, তবে এটি পূর্ণ Playwright প্রোটোকল নয়, তাই অস্বাভাবিক কিছু নিজের স্ক্রিপ্টে যাচাই করে নিন।
ক্লাউড সেশনে কি স্ক্রিনশট নেওয়া যায়?
হ্যাঁ, একটি সীমা আছে: কানেকশনে একটি মেসেজ প্রায় 1 MiB পর্যন্ত হতে পারে, তাই খুব বড় পুরো-পেজ স্ক্রিনশট বা স্ক্রিনকাস্টের ফ্রেম কানেকশনটি বন্ধ করে দিতে পারে। ভিউপোর্ট বা কোনো এলিমেন্টের স্ক্রিনশট নিন, অথবা দরকারি অংশটি ক্রপ করুন।
একসাথে কতগুলো Playwright সেশন চালানো যায়?
এক অ্যাকাউন্টে একসাথে 100টি পর্যন্ত। আপনার স্যুটের আরও দরকার হলে লিমিট বাড়াতে সাপোর্টে যোগাযোগ করুন।
একটি সেশন কতক্ষণ চলতে পারে?
60 সেকেন্ড থেকে 6 ঘণ্টা; ডিফল্ট 10 মিনিট। ডিফল্টভাবে Playwright কানেকশন বন্ধ করলে সেশনও থেমে যায়। keepAlive: true থাকলে সেশনের মেয়াদ শেষ না হওয়া পর্যন্ত ডিসকানেক্ট করে আবার কানেক্ট করা যায়।
রানগুলোর মাঝে কি কুকি ও লগইন রেখে দেওয়া যায়?
হ্যাঁ। প্রতিটি সেশন একটি settings ID ফেরত দেয়, যা পরের বার একই ব্রাউজার পরিচয় ও অবস্থা ফিরিয়ে আনে; একটি অ্যাকাউন্টে 20টি পর্যন্ত সংরক্ষিত সেটিংস রাখা যায়। লঞ্চের আগে 100টি পর্যন্ত কুকিও ইমপোর্ট করা যায়।

অন্যান্য ক্লাউড ব্রাউজার সমাধান দেখুন