HeadlessChrome101: Jit-Browser'ın Chrome'u Tam Çok Fonksiyonlu Tarayıcı–Sunucu-Tarayıcı Katmanı Haline Getirmesi
Bu, Jit-Browser'ın başsız Chrome ile ne yaptığını, özel Jit-TR çalışma zamanını nasıl kullandığını ve bunun sadece başka bir betik yerine birinci sınıf bir tarayıcı özelliği haline getirmek için hala nelerin gerektiğini açıklayan sade bir dilde bir kılavuzdur.
Basit bir ekran görüntüsü aracından Jit-Browser'a
Küçük bir komut satırı aracıyla başladık: getpage https://example.com page.png. Chrome'u bir Docker konteynerinde başlattı, example.com'un render edilmiş halinin ekran görüntüsünü aldı ve çıktı.
Faydalı bir kavram kanıtı. Her arama soğuk bir başlangıçtı. Çeviri, oturumlar veya durum hakkında hiçbir şey bilmiyordu. Sadece başsız bir kameraydı.
Jit-Browser bir sonraki adım. Hala gerçek Chrome'u kullanıyor, ama şimdi:
- Sayfanın içinde neler olduğunu kaydeder.
- Jit-TR betiğini bir çeviri katmanı olarak enjekte eder.
- Basit akışları, çerez banner'ları veya açılır menüler gibi takip edebilir.
- Tamamen çevrilmiş HTML'yi, sadece bir ekran görüntüsünü değil, yakalar.
Bu sayfa, elimizle havaya kaldırmadığımızı görebilmeniz için o boru hattını açıklıyor. Bir tarayıcı düzeyinde çok dilli katmanın nasıl çalışabileceğini gösteriyoruz.
Jit-Browser boru hattı 6 adımda
Yüksek bir seviyede, her yakalama aynı sırayı takip eder.
-
Docker içinde gerçek Chrome'u (başsız) başlatın.
Aynı motoru başlatmak için Puppeteer (pptr.dev) kullanıyoruz, bu motor normal tarayıcıları çalıştırır, ancak görünür bir pencere olmadan. Özel bir ayrıştırıcı yok, sahte bir render yok. -
Çerezleri veya oturum durumunu (eğer yapılandırılmışsa) uygula.
Oturum açılmış bir oturum gerektiren demolar için, çerezlerinizi yeniden oynatıyoruz. Hiçbir kaba kuvvet, hiçbir şifre tahmini, kontrol etmediğimiz hesapları kazıma yok. -
Hedef sayfayı tam olarak bir kullanıcı gibi yükleyin.
HTML, CSS, JavaScript, yazı tipleri, resimler. Bekliyoruznetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle) yavaş paketlerin ve fontların yüklenmesini tamamlaması için. -
Jit-TR parçasını bir katman olarak ekleyin.
Patent başvurusunda bulunan çalışma kodumuza işaret eden bir script etiketi ekliyoruz – örneğin:. Jit-TR çalışma modülü, açığa çıkarılan DOM'u (document.head ve document.body) tarar, çıkarılan yükü işlenmek üzere bizim (veya herhangi bir) sunucuya geri gönderir, sonuçları (çeviri, geliştirme veya yeni bilgi) alır, görünür metni yeniden yazar ve orijinalin üzerine yeni anlam katmanları ekler. Mevcut olan tek kısıtlamalar basittir: betikler genişletilebilir, ancak yeni talimatlar asla sitenin kendi betikleriyle çelişemez. Bu genellikle kullanılarak uygulanırMutationObserverDOM'daki ilgili değişiklikleri izlemek için örnekler, güncellemeleri küçük, hedeflenmiş yamalar halinde uygulamak ve mevcut uygulama mantığını veya olay işleyicilerini etkilemekten kaçınmak. -
İsteğe bağlı akışları çalıştırın: çerezler, tıklamalar ve kaydırma.
Gerçek sayfalar genellikle bir veya iki eyleme ihtiyaç duyar: bir çerez banner'ını kapatmak, bir menüyü açmak, daha fazla teklif yüklemek için kaydırmak. Jit-Browser, bu öğelerin yakalamadan önce görünür olması için basit bir akış betiği çalıştırabilir. -
Geliştirilmiş çıktıyı yakalayın.
Tasarruf ediyoruz:- Barındırma veya denetim için tamamen değiştirilmiş HTML.
- Olası darboğazları belirlemek için bir zamanlama izleme.
Bu, HeadlessChrome101'imizin özüdür. Bir tarayıcının yeni veya mevcut verileri herhangi bir tarayıcının içinde yerleşik bir katman olarak nasıl ele alabileceğine dair zihinsel modeldir.
Bu neden sadece bir oyuncak betiği değil
Jit-Browser önemlidir çünkü bir tarayıcı düzeyinde katmanın, tarayıcı satıcılarının her gün kullandığı aynı parçalarla inşa edilebileceğini ve bu katmanın, kendi Jit-TR çalışma zamanımız da dahil olmak üzere, herhangi bir dış hizmetle tam bir istemci-sunucu etkileşimini güvenli bir şekilde barındırabileceğini kanıtlar. Ayrıca, SEO uyumlu geliştirmeler eklediğimiz noktadır. rel="alternate" hreflang="..." bağlantılar ve zenginleştirilmiş sitemap.xml girişler. Pratikte, bu, kesintiye neden olmayan HTML bölgeleri içinde artırılmış bilgileri açığa çıkarabileceğimiz anlamına geliyor. mevcut sayfanın solunda veya sağında bulunan öğeler veya orijinal düzen veya betiklerle etkileşime girmeden dil seçimleri ve Akıllı Arama ekleyen JavaScript modalları kullanarak.
-
Gerçek Chrome motoru.
Her şey Chrome'un kendisinde çalışır - sadece görünür bir pencere olmadan. Ziyaretçileriniz için Chrome'da çalışıyorsa, Jit-Browser'da da çalışır. -
İçerik Güvenlik Politikası farkında.
Çoğu site, CSP ile betikleri kısıtlar. Başsız modda Chrome'un kullanılabiliriz.setBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) Jit-TR'yi yakalama ortamına enjekte etmek için. Üretim sitelerinin güvenlik politikalarını zayıflatmalarını gerektirmiyoruz. -
Tam zamanlama ve günlükleme.
Başlatma sürelerini, sayfa yükleme sürelerini, Jit-TR başlangıcını, akış adımlarını ve yakalamayı kaydediyoruz. Milisaniyelerin nereye gittiğini ve Jit-TR'nin sayfada ne yaptığını görebilirsiniz. -
Script ve katman ayrımı.
Bugün, Jit-TR bir siteye eklediğiniz "sadece bir script" olabilir. Jit-Browser'da bunu her zaman çalışan kararlı bir katman olarak ele alıyoruz. Bu, bir tarayıcı sağlayıcısının bunu yerel olarak nasıl entegre edebileceğine çok yakın.
Jit-TR API'sinin zaten çözdüğü şeyler
Zor kısım başsız Chrome değil. Zor kısım, canlı, dağınık web sayfalarını güvenli çok dilli versiyonlara dönüştürmektir. Bizim özel çalışma zamanımız api.jit-tr.com bu işi zaten yapıyor.
Bugün, API çalışma zamanı şunları yönetiyor:
-
Dil seçimi.
Şu parametreleri okur:jittr=ES-419, kenar durumlarını normalleştirir ve seçilen dili kaydeder, örneğin:[Jit-TR] Seçilen dil → ES-419. -
DOM çıkarımı, çeviri ve anlamsal yeniden yazımlar.
Çalışma zamanı gerçek Chrome DOM'unu yürütür, yalnızca görünür metni çıkarır, yapılandırılmış bir çeviri yükü oluşturur ve sonuçları sayfaya geri yazar. Tüm zor kenar durumları otomatik olarak işlenir: emoji dizileri, HTML varlıkları, noktalama ve boşluk kuralları, karışık dil dizeleri ve Soldan Sağa / Sağdan Sola geçiş. Ayrıca, dil spesifik script bloklarını yeniden yazar — dahil olmak üzereve diğer yapılandırılmış veri etiketleri — her dilin arama motorları ve AI sistemleri için doğru, bağımsız, önbelleklenmiş meta veriye sahip olmasını sağlar. -
İstemci davranışı.
Dil bayraklarını render eder, güvensiz kökleri dikkate alır ve tek sayfa uygulamaları ve çerçevelerle mümkün olduğunca güvenli bir şekilde oynar.
Tüm bunlar bugün Jit-TR sitelerinde zaten çalışıyor. Jit-Browser bunu kontrol edilen bir başsız ortamda yeniden kullanıyor.
Yerel bir tarayıcı özelliği için hala gerekenler
Yerel bir tarayıcı özelliği için hala gerekenler
Jit-Browser'ı yerleşik bir tarayıcı özelliğine dönüştürmek için kimsenin bir mucizeye ihtiyacı yok - sadece tarayıcı motorlarının zaten anladığı küçük, iyi tanımlanmış bir değişiklik setini yerleştirme yeteneği.
Jit-Browser'ı yerleşik bir tarayıcı özelliğine dönüştürmek için. Bu bir mucize değil, tarayıcıların zaten anladığı küçük bir değişiklik seti.
-
Motor içinde yerel bir kanca.
Bugün bunu başsız Chrome'dan bir script enjekte ederek simüle ediyoruz. Gerçek bir entegrasyon, Jit-TR'ye doğru renderlama boru hattında DOM metnini okuyup yazabileceği özel bir çeviri alanı verecektir. -
Dil niyetini ifade etmenin standart bir yolu.
Zaten kullanıyoruz?jittr=LANGve çerezler. Bir tarayıcı düzeyindeki çözüm, tarayıcı dil ayarlarını ve kullanıcı tercihlerini dikkate alabilir, örneğin "bu siteyi her zaman ES-419'a çevir". -
Açık bir güvenlik ve gizlilik çerçevesi.
Cihazdan çıkabilecek metin için kurallar, ne kadar süre önbelleğe alınabileceği ve sitelerin veya kullanıcıların nasıl çıkış yapabileceği net ve belgelenmiş olmalıdır. Tarayıcı içinde yerel bir uygulama, aslında geçici scriptlerden daha güvenli olabilir.
Örnek: HarmonyOS ES-419'da
İşte boru hattının işleyişine dair somut bir örnek.
Şunu çağırıyoruz:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- Docker içinde başsız Chrome'u başlatır.
- Yükler
https://www.harmonyos.com/. - ES-419 parametresi ile Jit-TR parçasını enjekte eder.
- Jit-TR'nin görünür Çin metnini İspanyolca'ya (Latin Amerika) çevirmesine izin verir.
- Sonucu şu şekilde kaydeder:
ES-419/index.php.
HarmonyOS sitesi değişiklik yapmaya gerek duymuyor. Kullanıcının perspektifinden, site basitçe dillerini destekliyormuş gibi görünüyor.
Bu sayfanın var olma nedeni
HeadlessChrome101, şunları gösteren bir özet:
- Gerçek tarayıcı motorları ve gerçek CSP kuralları kullanıyoruz.
- Zaten çalışan, özel bir çeviri çalışma zamanına sahibiz.
- Yerel bir tarayıcı özelliğine giden kalan boşluk küçük ve iyi tanımlanmış.
Tarayıcılar, işletim sistemleri veya büyük platformlar geliştiriyorsanız ve güvenlik modelinize saygı duyan evrensel çok dilli bir katman istiyorsanız, konuşmaya hazırız. Kod mevcut. Davranış ölçülebilir. Bir sonraki adım ortaklıktır.