পুতুল দ্রুত শুরু

আপনার প্রকল্পে Puppeteer ব্যবহার করতে, আপনাকে প্রথমে এটি ইনস্টল করতে হবে।

স্থাপন

npm i puppeteer
# or "yarn add puppeteer"

যখন আপনি Puppeteer ইনস্টল করেন, তখন এটি ক্রোমিয়ামের একটি সাম্প্রতিক সংস্করণ ডাউনলোড করে (~170MB Mac, ~282MB Linux, ~280MB Win) যা API-এর সাথে কাজ করার নিশ্চয়তা দেয়৷ ডাউনলোডটি এড়িয়ে যেতে, অন্য পাথে ডাউনলোড করতে বা একটি ভিন্ন ব্রাউজার ডাউনলোড করতে, এনভায়রনমেন্ট ভেরিয়েবল দেখুন।

puppeteer-কোর

সংস্করণ 1.7.0 থেকে, আমরা puppeteer-core প্যাকেজ প্রকাশ করি। Puppeteer-এর এই সংস্করণটি ডিফল্টরূপে কোনো ব্রাউজার ডাউনলোড করে না।

npm i puppeteer-core
# or "yarn add puppeteer-core"

puppeteer-core একটি বিদ্যমান ব্রাউজার ইনস্টলেশন চালু করার জন্য বা দূরবর্তী একটির সাথে সংযোগ করার জন্য Puppeteer-এর একটি লাইটওয়েট সংস্করণ হওয়ার উদ্দেশ্যে করা হয়েছে। আপনি যে ব্রাউজারটির সাথে সংযোগ করতে চান তার সাথে সামঞ্জস্যপূর্ণ পাপেটিয়ার-কোর সংস্করণটি আপনি ইনস্টল করেছেন তা নিশ্চিত করুন৷

পুতুল বনাম পুতুল-কোর দেখুন।

ব্যবহার

Puppeteer নোডের সর্বশেষ রক্ষণাবেক্ষণ LTS সংস্করণ অনুসরণ করে।

Puppeteer সম্ভবত অন্যান্য ব্রাউজার টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করে লোকেদের কাছে পরিচিত। আপনি Browser এর একটি উদাহরণ তৈরি করুন, পৃষ্ঠাগুলি খুলুন, এবং তারপরে Puppeteer's API দিয়ে সেগুলি পরিচালনা করুন।

একটি স্ক্রিনশট সংরক্ষণ করুন

উদাহরণস্বরূপ, https://example.com এ নেভিগেট করতে এবং example.png হিসাবে একটি স্ক্রিনশট সংরক্ষণ করতে, নিম্নলিখিত কোডটি example.js এ সংরক্ষণ করুন।

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'example.png' });

  await browser.close();
})();

Puppeteer একটি প্রাথমিক পৃষ্ঠার আকার 800×600px সেট করে, যা স্ক্রিনশটের আকার নির্ধারণ করে। পৃষ্ঠার আকার Page.setViewport() দিয়ে কাস্টমাইজ করা যেতে পারে।

একটি পিডিএফ তৈরি করুন

hn.js হিসাবে ফাইল সংরক্ষণ করুন।

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://news.ycombinator.com', {
    waitUntil: 'networkidle2',
  });
  await page.pdf({ path: 'hn.pdf', format: 'a4' });

  await browser.close();
})();

কমান্ড লাইনে স্ক্রিপ্ট চালান:

node hn.js

পিডিএফ তৈরি সম্পর্কে আরও তথ্যের জন্য Page.pdf() দেখুন।

পৃষ্ঠার প্রসঙ্গে স্ক্রিপ্ট মূল্যায়ন করুন

get-dimensions.js হিসাবে ফাইল সংরক্ষণ করুন:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');

  // Get the "viewport" of the page, as reported by the page.
  const dimensions = await page.evaluate(() => {
    return {
      width: document.documentElement.clientWidth,
      height: document.documentElement.clientHeight,
      deviceScaleFactor: window.devicePixelRatio,
    };
  });

  console.log('Dimensions:', dimensions);

  await browser.close();
})();

কমান্ড লাইনে স্ক্রিপ্ট চালান:

node get-dimensions.js

মূল্যায়ন এবং সম্পর্কিত পদ্ধতি যেমন evaluateOnNewDocument এবং exposeFunction সম্পর্কে আরও তথ্যের জন্য JavaScript মূল্যায়ন দেখুন।

ডিফল্ট রানটাইম সেটিংস

হেডলেস মোড ব্যবহার করে

Puppeteer হেডলেস মোডে ক্রোমিয়াম চালু করেছে। Chromium এর একটি সম্পূর্ণ সংস্করণ চালু করতে, একটি ব্রাউজার চালু করার সময় headless বিকল্প সেট করুন:

const browser = await puppeteer.launch({ headless: false }); // default is true

Chromium এর একটি বান্ডিল সংস্করণ চালায়

ডিফল্টরূপে, Puppeteer ডাউনলোড করে এবং Chromium এর একটি নির্দিষ্ট সংস্করণ ব্যবহার করে তাই এর API বাক্সের বাইরে কাজ করার নিশ্চয়তা দেওয়া হয়। Chrome বা Chromium এর একটি ভিন্ন সংস্করণের সাথে Puppeteer ব্যবহার করতে, একটি Browser দৃষ্টান্ত তৈরি করার সময় এক্সিকিউটেবলের পাথে যান:

const browser = await puppeteer.launch({ executablePath: '/path/to/Chrome' });

আপনি ফায়ারফক্স নাইটলি (পরীক্ষামূলক সহায়তা) এর সাথে পাপেটিয়ারও ব্যবহার করতে পারেন। আরও তথ্যের জন্য Puppeteer.launch() দেখুন।

আরও তথ্যের জন্য:

একটি নতুন ব্যবহারকারী প্রোফাইল তৈরি করে

Puppeteer তার নিজস্ব ব্রাউজার ব্যবহারকারী প্রোফাইল তৈরি করে যা এটি প্রতিটি রানে পরিষ্কার করে।

পরবর্তী পদক্ষেপ

,

আপনার প্রকল্পে Puppeteer ব্যবহার করতে, আপনাকে প্রথমে এটি ইনস্টল করতে হবে।

স্থাপন

npm i puppeteer
# or "yarn add puppeteer"

যখন আপনি Puppeteer ইনস্টল করেন, তখন এটি ক্রোমিয়ামের একটি সাম্প্রতিক সংস্করণ ডাউনলোড করে (~170MB Mac, ~282MB Linux, ~280MB Win) যা API-এর সাথে কাজ করার নিশ্চয়তা দেয়৷ ডাউনলোডটি এড়িয়ে যেতে, অন্য পাথে ডাউনলোড করতে বা একটি ভিন্ন ব্রাউজার ডাউনলোড করতে, এনভায়রনমেন্ট ভেরিয়েবল দেখুন।

puppeteer-কোর

সংস্করণ 1.7.0 থেকে, আমরা puppeteer-core প্যাকেজ প্রকাশ করি। Puppeteer-এর এই সংস্করণটি ডিফল্টরূপে কোনো ব্রাউজার ডাউনলোড করে না।

npm i puppeteer-core
# or "yarn add puppeteer-core"

puppeteer-core একটি বিদ্যমান ব্রাউজার ইনস্টলেশন চালু করার জন্য বা দূরবর্তী একটির সাথে সংযোগ করার জন্য Puppeteer-এর একটি লাইটওয়েট সংস্করণ হওয়ার উদ্দেশ্যে করা হয়েছে। আপনি যে ব্রাউজারটির সাথে সংযোগ করতে চান তার সাথে সামঞ্জস্যপূর্ণ পাপেটিয়ার-কোর সংস্করণটি আপনি ইনস্টল করেছেন তা নিশ্চিত করুন৷

পুতুল বনাম পুতুল-কোর দেখুন।

ব্যবহার

Puppeteer নোডের সর্বশেষ রক্ষণাবেক্ষণ LTS সংস্করণ অনুসরণ করে।

Puppeteer সম্ভবত অন্যান্য ব্রাউজার টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করে লোকেদের কাছে পরিচিত। আপনি Browser এর একটি উদাহরণ তৈরি করুন, পৃষ্ঠাগুলি খুলুন, এবং তারপরে Puppeteer's API দিয়ে সেগুলি পরিচালনা করুন।

একটি স্ক্রিনশট সংরক্ষণ করুন

উদাহরণস্বরূপ, https://example.com এ নেভিগেট করতে এবং example.png হিসাবে একটি স্ক্রিনশট সংরক্ষণ করতে, নিম্নলিখিত কোডটি example.js এ সংরক্ষণ করুন।

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'example.png' });

  await browser.close();
})();

Puppeteer একটি প্রাথমিক পৃষ্ঠার আকার 800×600px সেট করে, যা স্ক্রিনশটের আকার নির্ধারণ করে। পৃষ্ঠার আকার Page.setViewport() দিয়ে কাস্টমাইজ করা যেতে পারে।

একটি পিডিএফ তৈরি করুন

hn.js হিসাবে ফাইল সংরক্ষণ করুন।

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://news.ycombinator.com', {
    waitUntil: 'networkidle2',
  });
  await page.pdf({ path: 'hn.pdf', format: 'a4' });

  await browser.close();
})();

কমান্ড লাইনে স্ক্রিপ্ট চালান:

node hn.js

পিডিএফ তৈরি সম্পর্কে আরও তথ্যের জন্য Page.pdf() দেখুন।

পৃষ্ঠার প্রসঙ্গে স্ক্রিপ্ট মূল্যায়ন করুন

get-dimensions.js হিসাবে ফাইল সংরক্ষণ করুন:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');

  // Get the "viewport" of the page, as reported by the page.
  const dimensions = await page.evaluate(() => {
    return {
      width: document.documentElement.clientWidth,
      height: document.documentElement.clientHeight,
      deviceScaleFactor: window.devicePixelRatio,
    };
  });

  console.log('Dimensions:', dimensions);

  await browser.close();
})();

কমান্ড লাইনে স্ক্রিপ্ট চালান:

node get-dimensions.js

মূল্যায়ন এবং সম্পর্কিত পদ্ধতি যেমন evaluateOnNewDocument এবং exposeFunction সম্পর্কে আরও তথ্যের জন্য JavaScript মূল্যায়ন দেখুন।

ডিফল্ট রানটাইম সেটিংস

হেডলেস মোড ব্যবহার করে

Puppeteer হেডলেস মোডে ক্রোমিয়াম চালু করেছে। Chromium এর একটি সম্পূর্ণ সংস্করণ চালু করতে, একটি ব্রাউজার চালু করার সময় headless বিকল্প সেট করুন:

const browser = await puppeteer.launch({ headless: false }); // default is true

Chromium এর একটি বান্ডিল সংস্করণ চালায়

ডিফল্টরূপে, Puppeteer ডাউনলোড করে এবং Chromium এর একটি নির্দিষ্ট সংস্করণ ব্যবহার করে তাই এর API বাক্সের বাইরে কাজ করার নিশ্চয়তা দেওয়া হয়। Chrome বা Chromium এর একটি ভিন্ন সংস্করণের সাথে Puppeteer ব্যবহার করতে, একটি Browser দৃষ্টান্ত তৈরি করার সময় এক্সিকিউটেবলের পাথে যান:

const browser = await puppeteer.launch({ executablePath: '/path/to/Chrome' });

আপনি ফায়ারফক্স নাইটলি (পরীক্ষামূলক সহায়তা) এর সাথে পাপেটিয়ারও ব্যবহার করতে পারেন। আরও তথ্যের জন্য Puppeteer.launch() দেখুন।

আরও তথ্যের জন্য:

একটি নতুন ব্যবহারকারী প্রোফাইল তৈরি করে

Puppeteer তার নিজস্ব ব্রাউজার ব্যবহারকারী প্রোফাইল তৈরি করে যা এটি প্রতিটি রানে পরিষ্কার করে।

পরবর্তী পদক্ষেপ