HeadlessChrome101: Jit-Browser Chrome-u Tam Tamamilə Çoxfunksiyalı Brauzer–Server-Brauzer Qatına Çevirir
Bu, Jit-Browser-in başsız Chrome ilə nə etdiyini, mülkiyyət Jit-TR icra mühitini necə istifadə etdiyini və bunun birinci dərəcəli brauzer xüsusiyyəti olmasını təmin etmək üçün hələ nələrin lazım olduğunu izah edən sadə dildə bir bələdçidir.
Sadə ekran görüntüsü alətindən Jit-Browser-ə
Kiçik bir komanda xətti aləti ilə başladıq: getpage https://example.com page.png. Bu, Chrome-u Docker konteynerində işə saldı, page-dən rendered example.com-un ekran görüntüsünü çəkdi və çıxdı.
Faydalı konsept sübutu. Hər çağırış soyuq başlanğıc idi. Tərcümə, sessiyalar və ya vəziyyət haqqında heç nə bilmirdi. Bu, sadəcə başsız bir kameraydı.
Jit-Browser növbəti addımdır. Hələ də real Chrome-dan istifadə edir, amma indi:
- Səhifənin içində baş verənləri qeyd edir.
- Jit-TR skriptini tərcümə qatı kimi daxil edir.
- Kuki bannerləri və ya açılan menyular kimi sadə axınları izləyə bilir.
- Tamamilə tərcümə olunmuş HTML-i, yalnız ekran görüntüsünü deyil, ələ keçirir.
Bu səhifə o boru kəmərini izah edir ki, siz görəsiniz ki, biz əllərimizi yelləmirik. Biz bir brauzer səviyyəsində çoxdilli qatın necə işləyə biləcəyini göstəririk.
Jit-Browser boru kəməri 6 addımda
Yüksək səviyyədə, hər ələ keçirmə eyni ardıcıllığı izləyir.
-
Docker-da real Chrome-u (başsız) işə salın.
Biz normal brauzerləri gücləndirən eyni mühərriki başlatmaq üçün Puppeteer (pptr.dev) istifadə edirik, amma görünən pəncərə olmadan. Heç bir xüsusi parser, heç bir saxta render. -
Kukilər və ya giriş vəziyyətini tətbiq edin (əgər konfiqurasiya edilibsə).
Giriş sessiyası tələb edən nümayişlər üçün kukilərinizi yenidən oynadırıq. Heç bir zorakılıq, heç bir parol təxmin etmə, bizim nəzarət etmədiyimiz hesabları çəkmə. -
Hədəf səhifəni tam olaraq bir istifadəçi kimi yükləyin.
HTML, CSS, JavaScript, şriftlər, şəkillər. Biz gözləyiriknetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle) beləliklə, yavaş paketlər və şriftlər yüklənməyə davam edə bilər. -
Jit-TR parçasını qat kimi daxil edin.
Biz patent gözləyən icra kodumuza işarə edən bir skript etiketi əlavə edirik – məsələn:. Jit-TR icra modulu açıq DOM-u (document.head və document.body) gəzərək, çıxarılan yükü bizim (və ya hər hansı) serverə işlənməsi üçün göndərir, nəticələri (tərcümə, təkmilləşdirmə və ya yeni məlumat) alır, görünən mətni yenidən yazır və orijinalın üstündə yeni mənalar qatır. Mövcud olan yeganə məhdudiyyətlər sadədir: skriptlər artırıla bilər, amma yeni təlimatlar saytın öz skriptləri ilə heç vaxt müdaxilə edə bilməz. Bu, adətən, DOM-da müvafiq dəyişiklikləri izləmək, kiçik, hədəfli yamalarla yeniləmələri tətbiq etmək və mövcud tətbiq loqikasına və ya hadisə idarəedicilərinə toxunmamaq üçünMutationObservernümunələrindən istifadə etməklə həyata keçirilir. -
İstəyə bağlı axınları işə salın: kukilər, kliklər və sürüşdürmə.
Real səhifələr tez-tez bir və ya iki hərəkət tələb edir: bir kuki bannerini bağlamaq, bir menyunu açmaq, daha çox təklif yükləmək üçün sürüşdürmək. Jit-Browser sadə bir axın skriptini işə sala bilər ki, bu elementlər ələ keçirilmədən əvvəl görünə bilsin. -
Artırılmış çıxışı ələ keçirin.
Biz saxlayırıq:- Hostinq və ya audit üçün tamamilə dəyişdirilmiş HTML.
- Potensial dar boğazları müəyyən etmək üçün zaman izləri.
Bu, bizim HeadlessChrome101-in mərkəzidir. Bu, bir brauzerin yeni və ya mövcud məlumatları hər hansı bir brauzerin içində daxili qat kimi necə müalicə edə biləcəyinə dair mental modeldir.
Niyə bu sadəcə bir oyuncaq skripti deyil
Jit-Browser əhəmiyyətlidir, çünki bu, bir brauzer səviyyəsində qatın hər gün istifadə olunan eyni parçalarla qurula biləcəyini sübut edir və bu qat tam müştəri-server qarşılıqlı əlaqəsini, o cümlədən bizim öz Jit-TR icra mühitimizi təhlükəsiz şəkildə yerləşdirə bilər. Bu, həmçinin SEO-ya uyğun təkmilləşdirmələri, məsələn, rel="alternate" hreflang="..." linklər və zəngin sitemap.xml girişləri əlavə etdiyimiz yerdir. Praktikada, bu, artırılmış məlumatları mövcud səhifənin sol və ya sağ tərəfindəki elementlərində və ya orijinal düzülüş və skriptlərlə müdaxilə etmədən dil seçimləri və SmartSearch əlavə edən JavaScript modalları istifadə edərək açıq şəkildə təqdim edə biləcəyimiz deməkdir.
-
Real Chrome mühərriki.
Hər şey Chrome-un özündə işləyir - sadəcə görünən pəncərə olmadan. Əgər bu, ziyarətçiləriniz üçün Chrome-da işləyirsə, Jit-Browser-da da işləyir. -
Məzmun Təhlükəsizliyi Siyasəti ilə tanışdır.
Çox saytlarda skriptləri CSP ilə bağlayır. Başsız rejimdə Chrome-unsetBypassCSP(true) istifadə edə bilərik.(https://pptr.dev/api/puppeteer.page.setbypasscsp) Jit-TR-i tutma mühitinə daxil etmək üçün. Biz istehsal saytlarının təhlükəsizlik siyasətlərini zəiflətməsini tələb etmirik. -
Tam zamanlı və qeydiyyat.
Biz işə salma vaxtlarını, səhifə yükləmə vaxtlarını, Jit-TR-nin işə salınmasını, axın addımlarını və tutmağı qeyd edirik. Siz millisekundların haraya getdiyini və Jit-TR-nin səhifədə əslində nə etdiyini görə bilərsiniz. -
Skrip və qatın ayrılması.
Bu gün Jit-TR, bir sayta əlavə etdiyiniz "yalnız bir skript" ola bilər. Jit-Browser-də biz bunu həmişə işləyən sabit bir qat kimi qəbul edirik. Bu, bir brauzer istehsalçısının onu yerli olaraq necə qoşacağına çox yaxındır.
Jit-TR API-nin artıq həll etdiyi şey
Çətin hissə başsız Chrome deyil. Çətin hissə canlı, qarışıq veb səhifələrini etibarlı şəkildə təhlükəsiz çoxdilli versiyalara çevirməkdir. Bizim mülkiyyətimiz olan iş vaxtı api.jit-tr.com artıq bu işi görür.
Bu gün, API icra müddəti aşağıdakılara nəzarət edir:
-
Dil seçimi.
Parametrləri oxuyur kimijittr=ES-419, kənar halları normallaşdırır və seçilmiş dili qeyd edir, məsələn:[Jit-TR] Seçilmiş dil → ES-419. -
DOM çıxarılması, tərcümə və semantik yenidən yazmalar.
İcra müddəti real Chrome DOM-u gəzərək yalnız görünən mətni çıxarır, strukturlaşdırılmış tərcümə yükü yaradır və nəticələri səhifəyə geri yazır. Bütün çətin kənar hallar avtomatikdir: emoji ardıcıllıqları, HTML varlıqları, durğu işarələri və boşluq qaydaları, qarışıq dillərdəki sətirlər və Soldan-Sağa / Sağdan-Sola keçid. Həmçinin, dilə xas skript bloklarını yenidən yazır — daxil olmaqlavə digər strukturlaşdırılmış məlumat etiketləri — hər bir dilin axtarış mühərrikləri və AI sistemləri üçün düzgün, müstəqil, önbelleğe alınmış metadata ilə təmin edilməsini təmin edir. -
Müştəri davranışı.
Dil bayraqlarını göstərir, təhlükəsiz olmayan köklərə hörmət edir və tək səhifəlik tətbiqlərlə və çərçivələrlə mümkün qədər təhlükəsiz oynayır.
Bütün bunlar artıq Jit-TR saytlarında işləyir. Jit-Browser sadəcə bunu idarə olunan başsız mühitdə yenidən istifadə edir.
Yerli brauzer xüsusiyyəti üçün hələ nə lazımdır
Yerli brauzer xüsusiyyəti üçün hələ nə lazımdır
Jit-Browser-i daxili brauzer xüsusiyyətinə çevirmək üçün heç kimə möcüzə lazım deyil - sadəcə brauzer mühərriklərinin artıq başa düşdüyü kiçik, yaxşı müəyyən edilmiş dəyişikliklər dəstini yerləşdirmək imkanı lazımdır.
Jit=-Brauzeri daxili brauzer xüsusiyyəti halına gətirmək. Bu bir möcüzə deyil, sadəcə brauzerlərin artıq başa düşdüyü kiçik dəyişikliklər toplusudur.
-
Mühərrikdə yerli bir qarmaq.
Bu gün bunu başsız Chrome-dan bir skript daxil etməklə simulyasiya edirik. Həqiqi inteqrasiya Jit-TR-ə DOM mətnini renderləmə boru kəmərində düzgün nöqtədə oxumaq və yazmaq üçün xüsusi bir tərcümə slotu verəcək. -
Dil niyyətini ifadə etmənin standart yolu.
Artıq istifadə edirik?jittr=LANGvə peçenyelər. Bir brauzer səviyyəsində həll, brauzer dil parametrlərinə və istifadəçi seçimlərinə hörmət edə bilər, məsələn, "bu saytı həmişə ES-419-ə tərcümə et". -
Aydınlıq təhlükəsizlik və məxfilik çərçivəsi.
Cihazdan çıxan mətnin qaydaları, onun nə qədər müddətə yadda saxlanılması və saytların və ya istifadəçilərin necə çıxış edə biləcəyi aydın və sənədləşdirilmiş olmalıdır. Brauzer daxilində yerli tətbiqetmə əslində təsadüfi skriptlərdən daha təhlükəsiz ola bilər.
Məsələn: HarmonyOS in ES-419
Burada boru kəmərinin fəaliyyətində konkret bir nümunəsi var.
Biz çağırırıq:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- Docker içində başsız Chrome işə salır.
- Yüklər
https://www.harmonyos.com/. - Jit-TR parçasını ES-419 parametri ilə daxil edir.
- Gəlin Jit-TR görünən Çin mətnini İspan dilinə (Latın Amerikası) tərcümə etsin.
- Nəticəni belə saxlayır
ES-419/index.php.
HarmonyOS saytı dəyişməyə ehtiyac yoxdur. İstifadəçinin baxış bucağından, sayt sadəcə onların dilini dəstəkləyir kimi görünür.
Bu səhifənin mövcud olma səbəbi
HeadlessChrome101, aşağıdakılarla bağlı bir xülasədir:
- Biz real brauzer mühərriklərindən və real CSP qaydalarından istifadə edirik.
- Artıq işləyən, mülkiyyətə məxsus tərcümə icra mühiti var.
- Yerli brauzer xüsusiyyətinə qalan boşluq kiçik və yaxşı müəyyən edilmişdir.
Əgər siz brauzerlər, əməliyyat sistemləri və ya böyük platformalar qurursunuzsa və təhlükəsizlik modelinizi nəzərə alan universal çoxdilli bir qat istəyirsinizsə, danışmağa hazırıq. Kod mövcuddur. Davranış ölçülə biləndir. Növbəti addım tərəfdaşlıqdır.