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 পাইপলাইন ৬ ধাপে
উচ্চ স্তরে, প্রতিটি ক্যাপচার একই ক্রম অনুসরণ করে।
-
Docker-এর ভিতরে বাস্তব Chrome (হেডলেস) চালু করুন।
আমরা Puppeteer (pptr.dev) ব্যবহার করি একই ইঞ্জিন শুরু করতে যা সাধারণ ব্রাউজার চালায়, কিন্তু দৃশ্যমান উইন্ডো ছাড়াই। কোন কাস্টম পার্সার নেই, কোন নকল রেন্ডারিং নেই। -
কুকি বা লগইন অবস্থা প্রয়োগ করুন (যদি কনফিগার করা থাকে)।
যে ডেমোতে লগইন সেশন প্রয়োজন, আমরা আপনার কুকি পুনরায় চালাই। কোন ব্রুট ফোর্স নেই, কোন পাসওয়ার্ড অনুমান নেই, কোন অ্যাকাউন্ট স্ক্র্যাপিং নেই যা আমরা নিয়ন্ত্রণ করি না। -
ব্যবহারকারীর মতো লক্ষ্য পৃষ্ঠা লোড করুন।
HTML, CSS, JavaScript, ফন্ট, ছবি। আমরা অপেক্ষা করিnetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle) যাতে ধীর বান্ডেল এবং ফন্টগুলি লোডিং শেষ করতে পারে। -
Jit-TR স্নিপেটকে একটি স্তর হিসেবে ইনজেক্ট করুন।
আমরা আমাদের পেটেন্ট-মুলতুবি রানটাইম কোডের দিকে নির্দেশ করে একটি স্ক্রিপ্ট ট্যাগ যোগ করি – উদাহরণস্বরূপ:. Jit-TR রানটাইম মডিউল উন্মুক্ত DOM (document.head এবং document.body) ঘুরে বেড়ায়, প্রক্রিয়াকরণের জন্য আমাদের (বা যে কোন) সার্ভারে নিষ্কাশিত পে-লোড পাঠায়, ফলাফলগুলি (অনুবাদ, উন্নতি, বা নতুন তথ্য) গ্রহণ করে, দৃশ্যমান পাঠ্য পুনর্লিখন করে, এবং মূলের উপরে নতুন অর্থের স্তর যোগ করে। যে একমাত্র সীমাবদ্ধতা বিদ্যমান তা সহজ: স্ক্রিপ্টগুলি বাড়ানো যেতে পারে, কিন্তু নতুন নির্দেশাবলী কখনই সাইটের নিজস্ব স্ক্রিপ্টগুলির সাথে হস্তক্ষেপ করতে পারে না। এটি সাধারণতMutationObserverইনস্ট্যান্সগুলি ব্যবহার করে DOM-এ প্রাসঙ্গিক পরিবর্তনগুলি দেখার জন্য, ছোট, লক্ষ্যযুক্ত প্যাচগুলিতে আপডেটগুলি প্রয়োগ করার জন্য, এবং বিদ্যমান অ্যাপ্লিকেশন লজিক বা ইভেন্ট হ্যান্ডলারগুলিকে স্পর্শ না করার জন্য বাস্তবায়িত হয়। -
ঐচ্ছিক প্রবাহ চালান: কুকি, ক্লিক, এবং স্ক্রোল।
বাস্তব পৃষ্ঠাগুলিতে প্রায়শই এক বা দুটি ক্রিয়া প্রয়োজন: একটি কুকি ব্যানার বন্ধ করা, একটি মেনু খোলা, আরও অফার লোড করার জন্য স্ক্রোল করা। Jit-Browser একটি সাধারণ প্রবাহ স্ক্রিপ্ট চালাতে পারে যাতে সেই উপাদানগুলি ক্যাপচারের আগে দৃশ্যমান হয়। -
বর্ধিত আউটপুট ক্যাপচার করুন।
আমরা সংরক্ষণ করি:- হোস্টিং বা অডিটের জন্য সম্পূর্ণরূপে পরিবর্তিত HTML।
- সম্ভাব্য বাধাগুলি সনাক্ত করার জন্য একটি সময় ট্রেস।
এটাই আমাদের HeadlessChrome101-এর মূল। এটি একটি মানসিক মডেল যে কীভাবে একটি ব্রাউজার নতুন বা বিদ্যমান ডেটাকে যে কোন ব্রাউজারের ভিতরে একটি বিল্ট-ইন স্তর হিসেবে বিবেচনা করতে পারে।
কেন এটি শুধু একটি খেলনা স্ক্রিপ্ট নয়
Jit-Browser গুরুত্বপূর্ণ কারণ এটি প্রমাণ করে যে একটি ব্রাউজার-স্তরের স্তর তৈরি করা যেতে পারে একই অংশগুলি দিয়ে যা ব্রাউজার বিক্রেতারা প্রতিদিন ব্যবহার করে, এবং এই স্তরটি নিরাপদে যে কোন বাহ্যিক পরিষেবার সাথে একটি পূর্ণ ক্লায়েন্ট-সার্ভার ইন্টারঅ্যাকশন হোস্ট করতে পারে, যার মধ্যে আমাদের নিজস্ব Jit-TR রানটাইমও রয়েছে। এটি সেই বিন্দু যেখানে আমরা SEO-সচেতন উন্নতি যেমন rel="alternate" hreflang="..." লিঙ্ক এবং সমৃদ্ধ sitemap.xml এন্ট্রি যোগ করি। বাস্তবে, এর মানে হল আমরা বর্ধিত তথ্য প্রকাশ করতে পারি অ-বিঘ্নিত HTML অঞ্চলের ভিতরে যেমন বিদ্যমান পৃষ্ঠার বাম বা ডান দিকে উপাদানগুলি, বা JavaScript মডাল ব্যবহার করে যা ভাষার পছন্দ এবং SmartSearch যুক্ত করে মূল বিন্যাস বা স্ক্রিপ্টগুলির সাথে হস্তক্ষেপ না করে।
-
বাস্তব Chrome ইঞ্জিন।
সবকিছু Chrome নিজেই চালায় - শুধু দৃশ্যমান উইন্ডো ছাড়া। যদি এটি আপনার দর্শকদের জন্য Chrome-এ কাজ করে, তবে এটি Jit-Browser-এ কাজ করে। -
কন্টেন্ট সিকিউরিটি পলিসি সচেতন।
বেশিরভাগ সাইট CSP দিয়ে স্ক্রিপ্টগুলি লক করে। হেডলেস মোডে আমরা Chrome-এরsetBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) ক্যাপচার পরিবেশের ভিতরে Jit-TR ইনজেক্ট করতে। আমরা কোনো প্রোডাকশন সাইটকে তাদের নিরাপত্তা নীতিগুলি দুর্বল করতে বলি না। -
সম্পূর্ণ সময় এবং লগিং।
আমরা লঞ্চ টাইম, পেজ লোড টাইম, Jit-TR স্টার্টআপ, ফ্লো স্টেপস এবং ক্যাপচার লগ করি। আপনি দেখতে পারেন মিলিসেকেন্ডগুলি কোথায় যায় এবং Jit-TR পৃষ্ঠায় আসলে কী করে। -
স্ক্রিপ্ট এবং স্তরের পৃথকীকরণ।
আজ, Jit-TR একটি "শুধু একটি স্ক্রিপ্ট" হতে পারে যা আপনি একটি সাইটে যোগ করেন। Jit-Browser এ আমরা এটিকে একটি স্থিতিশীল স্তর হিসাবে বিবেচনা করি যা সর্বদা চলে। এটি খুব কাছাকাছি যে একটি ব্রাউজার বিক্রেতা এটি নেটিভভাবে প্লাগ করতে পারে।
Jit-TR API ইতিমধ্যেই যা সমাধান করে
কঠিন অংশটি হেডলেস ক্রোম নয়। কঠিন অংশটি হল লাইভ, বিশৃঙ্খল ওয়েব পৃষ্ঠাগুলিকে নিরাপদ বহুভাষিক সংস্করণে নির্ভরযোগ্যভাবে রূপান্তর করা। আমাদের মালিকানাধীন রানটাইম ইতিমধ্যেই api.jit-tr.com থেকে সেই কাজটি করে।
আজ, API রানটাইম পরিচালনা করে:
-
ভাষা নির্বাচন।
এটি প্যারামিটারগুলি পড়ে যেমনjittr=ES-419, প্রান্তিক কেসগুলি স্বাভাবিক করে এবং নির্বাচিত ভাষাটি লগ করে, উদাহরণস্বরূপ:[Jit-TR] নির্বাচিত ভাষা → ES-419. -
DOM নিষ্কাশন, অনুবাদ এবং অর্থপূর্ণ পুনর্লিখন।
রানটাইম প্রকৃত ক্রোম DOM এর মধ্য দিয়ে হাঁটে, শুধুমাত্র দৃশ্যমান টেক্সট নিষ্কাশন করে, একটি কাঠামোগত অনুবাদ পে-লোড তৈরি করে এবং ফলাফলগুলি পৃষ্ঠায় পুনরায় লেখে। সমস্ত কঠিন প্রান্তিক কেস স্বয়ংক্রিয়: ইমোজি সিকোয়েন্স, HTML সত্তা, বিরামচিহ্ন এবং স্পেসিং নিয়ম, মিশ্র-ভাষার স্ট্রিং এবং বাম-থেকে-ডান / ডান-থেকে-বাম সুইচিং। এটি ভাষা-নির্দিষ্ট স্ক্রিপ্ট ব্লকগুলিও পুনর্লিখন করে — সহএবং অন্যান্য কাঠামোগত-ডেটা ট্যাগ — নিশ্চিত করে যে প্রতিটি ভাষার জন্য অনুসন্ধান ইঞ্জিন এবং AI সিস্টেমের জন্য সঠিক, স্বাধীন, ক্যাশড মেটাডেটা রয়েছে। -
ক্লায়েন্ট আচরণ।
এটি ভাষার পতাকা রেন্ডার করে, অনিরাপদ রুটগুলিকে সম্মান করে এবং একক-পৃষ্ঠার অ্যাপ এবং ফ্রেমওয়ার্কগুলির সাথে যতটা সম্ভব নিরাপদে খেলে।
এই সমস্ত কিছু ইতিমধ্যেই আজ Jit-TR সাইটে চলে। Jit-Browser এটি একটি নিয়ন্ত্রিত হেডলেস পরিবেশে পুনরায় ব্যবহার করে।
নেটিভ ব্রাউজার ফিচারের জন্য এখনও কী প্রয়োজন
নেটিভ ব্রাউজার ফিচারের জন্য এখনও কী প্রয়োজন
Jit-Browser কে একটি বিল্ট-ইন ব্রাউজার ফিচারে পরিণত করতে, কারো অলৌকিক প্রয়োজন নেই - শুধু একটি ছোট, সু-সংজ্ঞায়িত পরিবর্তনের সেট স্থাপন করার ক্ষমতা যা ব্রাউজার ইঞ্জিনগুলি ইতিমধ্যেই বোঝে।
Jit=-Browser কে একটি বিল্ট-ইন ব্রাউজার ফিচারে পরিণত করতে। এটি কোনো অলৌকিক ঘটনা নয়, শুধু একটি ছোট পরিবর্তনের সেট যা ব্রাউজারগুলি ইতিমধ্যেই বোঝে।
-
ইঞ্জিনে একটি নেটিভ হুক।
আজ আমরা হেডলেস ক্রোম থেকে একটি স্ক্রিপ্ট ইনজেক্ট করে এটি অনুকরণ করি। একটি বাস্তব ইন্টিগ্রেশন Jit-TR কে একটি নিবেদিত অনুবাদ স্লট দেবে যাতে এটি রেন্ডারিং পাইপলাইনে সঠিক পয়েন্টে DOM টেক্সট পড়তে এবং লিখতে পারে। -
ভাষার অভিপ্রায় প্রকাশ করার একটি মানক উপায়।
আমরা ইতিমধ্যেই ব্যবহার করি?jittr=LANGএবং কুকিজ। একটি ব্রাউজার-স্তরের সমাধান ব্রাউজার ভাষার সেটিংস এবং ব্যবহারকারীর পছন্দগুলিকে সম্মান করতে পারে যেমন "এই সাইটটিকে সর্বদা ES-419 এ অনুবাদ করুন"। -
একটি পরিষ্কার নিরাপত্তা এবং গোপনীয়তা কাঠামো।
কোন টেক্সট ডিভাইস ছেড়ে যেতে পারে, কতক্ষণ এটি ক্যাশ করা যেতে পারে এবং সাইট বা ব্যবহারকারীরা কীভাবে অপ্ট আউট করতে পারে তার নিয়মগুলি পরিষ্কার এবং নথিভুক্ত করা উচিত। ব্রাউজারের ভিতরে একটি নেটিভ বাস্তবায়ন আসলে অ্যাড-হক স্ক্রিপ্টের চেয়ে নিরাপদ হতে পারে।
উদাহরণ: HarmonyOS in ES-419
এখানে পাইপলাইনের ক্রিয়ায় একটি কংক্রিট উদাহরণ।
আমরা কল করি:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- ডকারের ভিতরে হেডলেস ক্রোম চালু করে।
- লোড করে
https://www.harmonyos.com/. - ES-419 প্যারামিটার সহ Jit-TR স্নিপেট ইনজেক্ট করে।
- Jit-TR দৃশ্যমান চীনা টেক্সটকে স্প্যানিশ (ল্যাটিন আমেরিকা) এ অনুবাদ করতে দেয়।
- ফলাফল সংরক্ষণ করে
ES-419/index.php.
HarmonyOS সাইটটি পরিবর্তন করার প্রয়োজন নেই। ব্যবহারকারীর দৃষ্টিকোণ থেকে, এটি এমন দেখায় যে সাইটটি কেবল তাদের ভাষাকে সমর্থন করে।
কেন এই পৃষ্ঠা বিদ্যমান
HeadlessChrome101 একটি সারাংশ যা দেখায়:
- আমরা প্রকৃত ব্রাউজার ইঞ্জিন এবং প্রকৃত CSP নিয়ম ব্যবহার করছি।
- আমাদের ইতিমধ্যেই একটি কার্যকরী, মালিকানাধীন অনুবাদ রানটাইম রয়েছে।
- একটি নেটিভ ব্রাউজার ফিচারের জন্য অবশিষ্ট ফাঁকটি ছোট এবং সু-সংজ্ঞায়িত।
যদি আপনি ব্রাউজার, অপারেটিং সিস্টেম, বা বড় প্ল্যাটফর্ম তৈরি করেন এবং আপনার নিরাপত্তা মডেলকে সম্মান করে এমন একটি সার্বজনীন বহুভাষিক স্তর চান, আমরা কথা বলতে প্রস্তুত। কোড বিদ্যমান। আচরণ পরিমাপযোগ্য। পরবর্তী পদক্ষেপ হল অংশীদারিত্ব।