জিট-ব্রাউজার জিট-৪ প্ল্যাটফর্মের অংশ EN-CA

HeadlessChrome101: কীভাবে Jit-Browser Chrome-কে একটি পূর্ণাঙ্গ মাল্টি-ফাংশন ব্রাউজার–সার্ভার-ব্রাউজার স্তরে পরিণত করে

এটি একটি সাধারণ ভাষার মাধ্যমে Jit-Browser কীভাবে হেডলেস Chrome-এর সাথে কাজ করে, কীভাবে এটি মালিকানাধীন Jit-TR রানটাইম ব্যবহার করে, এবং এটি প্রথম শ্রেণীর ব্রাউজার বৈশিষ্ট্য হিসেবে তৈরি করতে এখনও কী প্রয়োজন তা ব্যাখ্যা করে।

একটি সাধারণ স্ক্রিনশট টুল থেকে Jit-Browser

আমরা একটি ছোট কমান্ড-লাইন টুল দিয়ে শুরু করেছিলাম: getpage https://example.com page.png. এটি একটি Docker কন্টেইনারে Chrome চালু করেছিল, পৃষ্ঠার থেকে রেন্ডার করা example.com-এর একটি স্ক্রিনশট নিয়েছিল এবং বেরিয়ে গিয়েছিল।

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

Jit-Browser হল পরবর্তী ধাপ। এটি এখনও বাস্তব Chrome ব্যবহার করে, কিন্তু এখন:

  • এটি পৃষ্ঠার ভিতরে যা ঘটে তা লগ করে।
  • এটি Jit-TR স্ক্রিপ্টকে একটি অনুবাদ স্তর হিসেবে ইনজেক্ট করে।
  • এটি কুকি ব্যানার বা ড্রপডাউনগুলির মতো সাধারণ প্রবাহ অনুসরণ করতে পারে।
  • এটি সম্পূর্ণ অনুবাদিত HTML ক্যাপচার করে, শুধু একটি স্ক্রিনশট নয়।

এই পৃষ্ঠা সেই পাইপলাইনটি ব্যাখ্যা করে যাতে আপনি দেখতে পারেন যে আমরা হাত নাড়াচ্ছি না। আমরা দেখাচ্ছি কীভাবে একটি ব্রাউজার-স্তরের বহুভাষিক স্তর আসলে কাজ করতে পারে।

Jit-Browser পাইপলাইন ৬ ধাপে

উচ্চ স্তরে, প্রতিটি ক্যাপচার একই ক্রম অনুসরণ করে।

  1. Docker-এর ভিতরে বাস্তব Chrome (হেডলেস) চালু করুন।
    আমরা Puppeteer (pptr.dev) ব্যবহার করি একই ইঞ্জিন শুরু করতে যা সাধারণ ব্রাউজার চালায়, কিন্তু দৃশ্যমান উইন্ডো ছাড়াই। কোন কাস্টম পার্সার নেই, কোন নকল রেন্ডারিং নেই।
  2. কুকি বা লগইন অবস্থা প্রয়োগ করুন (যদি কনফিগার করা থাকে)।
    যে ডেমোতে লগইন সেশন প্রয়োজন, আমরা আপনার কুকি পুনরায় চালাই। কোন ব্রুট ফোর্স নেই, কোন পাসওয়ার্ড অনুমান নেই, কোন অ্যাকাউন্ট স্ক্র্যাপিং নেই যা আমরা নিয়ন্ত্রণ করি না।
  3. ব্যবহারকারীর মতো লক্ষ্য পৃষ্ঠা লোড করুন।
    HTML, CSS, JavaScript, ফন্ট, ছবি। আমরা অপেক্ষা করি networkidle2 (https://pptr.dev/api/puppeteer.page.waitfornetworkidle) যাতে ধীর বান্ডেল এবং ফন্টগুলি লোডিং শেষ করতে পারে।
  4. Jit-TR স্নিপেটকে একটি স্তর হিসেবে ইনজেক্ট করুন।
    আমরা আমাদের পেটেন্ট-মুলতুবি রানটাইম কোডের দিকে নির্দেশ করে একটি স্ক্রিপ্ট ট্যাগ যোগ করি – উদাহরণস্বরূপ: