HeadlessChrome101: Kaip Jit-Browser paverčia Chrome į pilnavertį daugiafunkcį naršyklę–serverio-naršyklės sluoksnį
Tai yra paprastas paaiškinimas, ką Jit-Browser daro su headless Chrome, kaip jis naudoja patentuotą Jit-TR vykdymo aplinką ir kas dar reikalinga, kad tai taptų pirmo lygio naršyklės funkcija, o ne tik dar vienu skriptu.
Nuo paprasto ekrano nuotraukų įrankio iki Jit-Browser
Pradėjome nuo mažo komandinės eilutės įrankio: getpage https://example.com page.png. Jis paleido Chrome Docker konteineryje, padarė ekrano nuotrauką iš renderinto example.com puslapio ir užsidarė.
Naudingas koncepcijos įrodymas. Kiekvienas skambutis buvo šaltas startas. Jis nieko nežinojo apie vertimą, sesijas ar būseną. Tai buvo tiesiog headless kamera.
Jit-Browser yra kitas žingsnis. Jis vis dar naudoja tikrą Chrome, bet dabar:
- Jis registruoja, kas vyksta puslapyje.
- Jis įterpia Jit-TR skriptą kaip vertimo sluoksnį.
- Jis gali sekti paprastus srautus, tokius kaip slapukų skydeliai ar išskleidžiami meniu.
- Jis fiksuoja visiškai išverstą HTML, o ne tik ekrano nuotrauką.
Šiame puslapyje paaiškinama ta pipeline, kad galėtumėte pamatyti, jog mes nesakome tuščių žodžių. Mes parodome, kaip naršyklės lygio daugiakalbis sluoksnis gali iš tikrųjų veikti.
Jit-Browser pipeline 6 žingsniais
Aukštu lygiu kiekvienas fiksavimas vyksta ta pačia seka.
-
Paleiskite tikrą Chrome (headless) Docker viduje.
Mes naudojame Puppeteer (pptr.dev), kad paleistume tą patį variklį, kuris varo įprastas naršykles, bet be matomo lango. Nėra specialaus analizatoriaus, nėra netikro renderinimo. -
Taikykite slapukus arba prisijungimo būseną (jei sukonfigūruota).
Demonstruojant, kuriam reikia prisijungusios sesijos, mes atkuriame jūsų slapukus. Nėra brutalaus jėgos, nėra slaptažodžių spėjimo, nėra paskyrų, kurių nekontroliuojame, rinkimo. -
Įkelkite tikslinį puslapį tiksliai kaip vartotojas.
HTML, CSS, JavaScript, šriftai, vaizdai. Mes laukiamenetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle), kad lėti paketai ir šriftai galėtų baigti įkrovimą. -
Įterpkite Jit-TR fragmentą kaip sluoksnį.
Mes pridedame skripto žymę, nurodančią mūsų patentuoto vykdymo kodo - pavyzdžiui:. Jit-TR vykdymo modulis pereina per atidarytą DOM (document.head ir document.body), siunčia išgautą informaciją atgal į mūsų (ar bet kurį) serverį apdoroti, gauna rezultatus (vertimą, patobulinimą ar naują informaciją), perrašo matomą tekstą ir prideda naujus prasmių sluoksnius virš originalo. Vieninteliai apribojimai yra paprasti: skriptai gali būti papildomi, tačiau naujos instrukcijos niekada negali trukdyti svetainės pačios skriptams. Tai paprastai įgyvendinama naudojantMutationObserverpavyzdžius, kad stebėtų atitinkamus pokyčius DOM, taikytų atnaujinimus mažais, tikslingais pataisymais ir vengtų liesti bet kokią esamą programos logiką ar įvykių tvarkykles. -
Vykdykite pasirenkamus srautus: slapukai, paspaudimai ir slinkimas.
Tikrų puslapių dažnai reikia vienos ar dviejų veiksmų: uždaryti slapukų skydelį, atidaryti meniu, slinkti, kad būtų įkeltos daugiau pasiūlymų. Jit-Browser gali vykdyti paprastą srauto skriptą, kad tie elementai būtų matomi prieš fiksavimą. -
Fiksuokite papildytą išvestį.
Mes išsaugome:- Visiškai modifikuotą HTML, skirtą talpinimui ar auditui.
- Laiko seką, kad būtų galima nustatyti galimus butelio kakliukus.
Tai yra mūsų HeadlessChrome101 esmė. Tai yra protinis modelis, kaip naršyklė galėtų traktuoti naujus ar esamus duomenis kaip integruotą sluoksnį bet kurioje naršyklėje.
Kodėl tai ne tik žaislinis skriptas
Jit-Browser yra svarbus, nes jis įrodo, kad naršyklės lygio sluoksnis gali būti sukurtas naudojant tas pačias dalis, kurias naršyklių tiekėjai jau naudoja kiekvieną dieną, ir kad šis sluoksnis gali saugiai talpinti visą kliento-serverio sąveiką su bet kuria išorine paslauga, įskaitant mūsų pačių Jit-TR vykdymo aplinką. Tai taip pat yra ta vieta, kur mes pridedame SEO sąmoningus patobulinimus, tokius kaip rel="alternate" hreflang="..." nuorodos ir praturtintas sitemap.xml įrašai. Praktikoje tai reiškia, kad galime atskleisti papildytą informaciją nepertraukiamuose HTML regionuose, tokiuose kaip elementai kairėje arba dešinėje esamo puslapio, arba naudodami JavaScript modalius, kurie prideda kalbos pasirinkimus ir SmartSearch, nesikišdami į originalų išdėstymą ar skriptus.
-
Tikrų Chrome variklis.
Visi procesai vyksta pačiame Chrome - tiesiog be matomo lango. Jei tai veikia Chrome jūsų lankytojams, tai veikia ir Jit-Browser. -
Turinio saugumo politika sąmoninga.
Dauguma svetainių užrakina skriptus su CSP. Headless režimu mes galime naudoti ChromesetBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) įterpti Jit-TR į užfiksavimo aplinką. Mes nereikalaujame, kad gamybos svetainės silpnintų savo saugumo politiką. -
Pilnas laiko ir žurnalo fiksavimas.
Mes fiksuojame paleidimo laikus, puslapio įkėlimo laikus, Jit-TR paleidimą, srauto žingsnius ir užfiksavimą. Galite matyti, kur praeina milisekundės ir ką Jit-TR iš tikrųjų daro puslapyje. -
Skripto ir sluoksnio atskyrimas.
Šiandien Jit-TR gali būti "tiesiog skriptas", kurį pridedate prie svetainės. Jit-Browser mes jį laikome stabiliu sluoksniu, kuris visada veikia. Tai labai arti to, kaip naršyklės tiekėjas galėtų jį natūraliai integruoti.
Ką jau išsprendžia Jit-TR API
Sunkiausia dalis nėra headless Chrome. Sunkiausia dalis yra patikimai paversti gyvus, netvarkingus tinklalapius į saugias daugiakalbes versijas. Mūsų patentuota vykdymo aplinka api.jit-tr.com jau atlieka šį darbą.
Šiandien API vykdymo aplinka tvarko:
-
Kalbos pasirinkimas.
Ji skaito parametrus, tokius kaipjittr=ES-419, normalizuoja kraštutinius atvejus ir fiksuoja pasirinktą kalbą, pavyzdžiui:[Jit-TR] Pasirinkta kalba → ES-419. -
DOM išgavimas, vertimas ir semantiniai perrašymai.
Vykdymo aplinka pereina per tikrą Chrome DOM, išgauna tik matomą tekstą, sukuria struktūrizuotą vertimo paketą ir įrašo rezultatus atgal į puslapį. Visi sunkūs kraštutiniai atvejai yra automatiniai: emoji sekos, HTML entitetai, skyrybos ir tarpo taisyklės, mišrių kalbų eilutės ir kairės į dešinę / dešinės į kairę perjungimas. Ji taip pat perrašo kalbai specifinius skripto blokus — įskaitantir kitus struktūrizuotus duomenų žymenis — užtikrindama, kad kiekviena kalba turėtų teisingą, nepriklausomą, talpinamą metaduomenį paieškos sistemoms ir AI sistemoms. -
Kliento elgesys.
Ji rodo kalbos vėliavas, gerbia nesaugias šaknis ir veikia kiek įmanoma saugiau su vieno puslapio programomis ir sistemomis.
Visa tai jau veikia Jit-TR svetainėse šiandien. Jit-Browser tiesiog pakartoja tai kontroliuojamoje headless aplinkoje.
Ką dar reikia, kad būtų sukurta natūrali naršyklės funkcija
Ką dar reikia, kad būtų sukurta natūrali naršyklės funkcija
Norint paversti Jit-Browser į integruotą naršyklės funkciją, niekam nereikia stebuklo - tik galimybės atlikti nedidelį, gerai apibrėžtą pakeitimų rinkinį, kurį naršyklės varikliai jau supranta.
Norint paversti Jit-Browser į integruotą naršyklės funkciją. Tai nėra stebuklas, tik nedidelis pakeitimų rinkinys, kurį naršyklės jau supranta.
-
Natūralus kabliukas variklyje.
Šiandien mes tai imituojame įterpdami skriptą iš headless Chrome. Tikra integracija suteiktų Jit-TR specialų vertimo slotą, kad jis galėtų skaityti ir rašyti DOM tekstą tinkamu momentu renderavimo pipeline. -
Standartinis būdas išreikšti kalbos ketinimus.
Mes jau naudojame?jittr=LANGir slapukus. Naršyklės lygio sprendimas galėtų gerbti naršyklės kalbos nustatymus ir vartotojo pasirinkimus, tokius kaip "visada versti šią svetainę į ES-419". -
Aiški saugumo ir privatumo sistema.
Taisyklės, kas gali palikti įrenginį, kiek laiko gali būti talpinama ir kaip svetainės ar vartotojai gali atsisakyti, turėtų būti aiškios ir dokumentuotos. Natūrali įgyvendinimas naršyklėje iš tikrųjų gali būti saugesnis nei ad-hoc skriptai.
Pavyzdys: HarmonyOS ES-419
Štai konkretus pavyzdys, kaip veikia pipeline.
Mes skambiname:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- Paleidžia headless Chrome viduje Docker.
- Įkelia
https://www.harmonyos.com/. - Įterpia Jit-TR fragmentą su ES-419 parametru.
- Leidžia Jit-TR išversti matomą kinų tekstą į ispanų (Lotynų Amerika).
- Išsaugo rezultatą kaip
ES-419/index.php.
HarmonyOS svetainė neturi keistis. Vartotojo požiūriu, atrodo, kad svetainė tiesiog palaiko jų kalbą.
Kodėl ši puslapis egzistuoja
HeadlessChrome101 yra santrauka, kuri rodo:
- Mes naudojame tikras naršyklių variklius ir tikras CSP taisykles.
- Mes jau turime veikiančią, patentuotą vertimo vykdymo aplinką.
- Likusi spraga iki natūralios naršyklės funkcijos yra maža ir gerai apibrėžta.
Jei kuriate naršykles, operacines sistemas ar dideles platformas ir norite universalaus daugiakalbio sluoksnio, kuris gerbtų jūsų saugumo modelį, mes esame pasiruošę kalbėtis. Kodas egzistuoja. Elgesys yra išmatuojamas. Kitas žingsnis yra partnerystė.