HeadlessChrome101: Kako Jit-Browser spremeni Chrome v popoln večfunkcijski brskalnik–strežniški brskalniški sloj
To je preprost vodnik v jeziku, ki pojasnjuje, kaj Jit-Browser počne s headless Chrome, kako uporablja lastniški Jit-TR runtime in kaj je še potrebno, da to postane funkcija prvega razreda brskalnika namesto le še enega skripta.
Od preprostega orodja za zajemanje zaslona do Jit-Browser
Začeli smo z majhnim orodjem za ukazno vrstico: getpage https://example.com page.png. Zagnal je Chrome v Docker vsebniku, zajel posnetek zaslona upodobljenega example.com iz strani in izstopil.
Koristen dokaz koncepta. Vsak klic je bil hladen zagon. Ni vedel nič o prevodu, sejah ali stanju. Bil je le headless fotoaparat.
Jit-Browser je naslednji korak. Še vedno uporablja pravi Chrome, vendar zdaj:
- Zabeleži, kaj se dogaja znotraj strani.
- Vstavi Jit-TR skript kot prevodni sloj.
- Lahko sledi preprostim tokom, kot so piškotki ali spustni meniji.
- Zajame popolnoma preveden HTML, ne le posnetek zaslona.
Ta stran pojasnjuje ta pipeline, da lahko vidite, da ne mahamo z rokami. Prikazujemo, kako lahko sloj večjezičnega brskalnika dejansko deluje.
Jit-Browser pipeline v 6 korakih
Na visoki ravni vsak zajem sledi istemu zaporedju.
-
Zaženi pravi Chrome (headless) znotraj Dockerja.
Uporabljamo Puppeteer (pptr.dev), da zaženemo isti motor, ki poganja običajne brskalnike, vendar brez vidnega okna. Brez prilagojenega parserja, brez lažnega upodabljanja. -
Uporabi piškotke ali stanje prijave (če je konfigurirano).
Za demonstracije, ki potrebujejo prijavljeno sejo, ponovno predvajamo vaše piškotke. Brez grobe sile, brez ugibanja gesel, brez strganja računov, ki jih ne nadzorujemo. -
Naloži ciljno stran natančno tako, kot bi to storil uporabnik.
HTML, CSS, JavaScript, pisave, slike. Čakamo nanetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle), da se počasni paketi in pisave lahko naložijo. -
Vstavi Jit-TR delček kot sloj.
Dodamo oznako skripta, ki kaže na našo patentirano kodo runtime – na primer:. Jit-TR runtime modul prehodi izpostavljeni DOM (document.head in document.body), pošlje izluščeno vsebino nazaj na naš (ali kateri koli) strežnik, da se obdela, prejme rezultate (prevod, izboljšanje ali nove informacije), prepiše vidno besedilo in doda nove plasti pomena na vrhu izvirnega. Edine omejitve, ki obstajajo, so preproste: skripti se lahko dopolnjujejo, vendar nove navodila nikoli ne smejo motiti lastnih skriptov strani. To se običajno izvaja z uporaboMutationObserverinstanc, da spremljajo ustrezne spremembe v DOM, uporabijo posodobitve v majhnih, ciljno usmerjenih popravkih in se izognejo dotikanju obstoječe logike aplikacije ali obdelovalcev dogodkov. -
Izvedi neobvezne tokove: piškotki, kliki in pomikanje.
Prave strani pogosto potrebujejo eno ali dve dejanj: zapiranje piškotnega pasu, odpiranje menija, pomikanje za nalaganje več ponudb. Jit-Browser lahko izvede preprost tok skripta, tako da so ti elementi vidni pred zajemom. -
Zajemi izboljšan izhod.
Shranjujemo:- Popolnoma spremenjen HTML za gostovanje ali revizijo.
- Sled časov, da identificiramo morebitne ozke grla.
To je jedro našega HeadlessChrome101. To je mentalni model, kako bi brskalnik lahko obravnaval nove ali obstoječe podatke kot vgrajen sloj znotraj katerega koli brskalnika.
Zakaj to ni le igračka skripta
Jit-Browser je pomemben, ker dokazuje, da je mogoče zgraditi sloj na ravni brskalnika z istimi elementi, ki jih brskalniški ponudniki vsak dan že uporabljajo, in da ta sloj lahko varno gosti popolno interakcijo med odjemalcem in strežnikom z vsemi zunanjimi storitvami, vključno z našim lastnim Jit-TR runtime. To je tudi točka, kjer dodamo SEO-ozaveščene izboljšave, kot so rel="alternate" hreflang="..." povezave in obogatene sitemap.xml vnosov. V praksi to pomeni, da lahko izpostavimo obogatene informacije znotraj nedistraktivnih HTML regij, kot so elementi na levi ali desni strani obstoječe strani, ali z uporabo JavaScript modalov, ki pritrjujejo jezikovne izbire in SmartSearch, ne da bi motili izvirno postavitev ali skripte.
-
Pravi Chrome motor.
Vse deluje na Chromu samem - le brez vidnega okna. Če deluje v Chromu za vaše obiskovalce, deluje tudi v Jit-Browser. -
Zavedanje o politiki varnosti vsebine.
Večina strani zaklene skripte s CSP. V headless načinu lahko uporabimo ChromeovosetBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) za vstavitev Jit-TR znotraj okolja za zajem. Ne zahtevamo, da bi katera koli proizvodna spletna mesta oslabila svoje varnostne politike. -
Polno časovno sledenje in beleženje.
Zabeležimo čase zagonov, čase nalaganja strani, zagon Jit-TR, korake toka in zajem. Lahko vidite, kam gredo milisekunde in kaj Jit-TR dejansko počne na strani. -
Ločitev skripte in plasti.
Danes je Jit-TR lahko "le skripta", ki jo dodate na spletno mesto. V Jit-Browserju ga obravnavamo kot stabilno plast, ki vedno deluje. To je zelo blizu temu, kako bi ga lahko vgradil ponudnik brskalnika.
Kaj Jit-TR API že rešuje
Težak del ni brezglavi Chrome. Težak del je zanesljivo pretvoriti žive, neurejene spletne strani v varne večjezične različice. Naša lastniška izvajalska enota na api.jit-tr.com to delo že opravlja.
Danes izvajalska enota API obravnava:
-
Izbira jezika.
Beri parametre, kot sojittr=ES-419, normalizira robne primere in beleži izbrani jezik, na primer:[Jit-TR] Izbran jezik → ES-419. -
Ekstrakcija DOM, prevod in semantične prepiske.
Izvajalska enota prehaja skozi pravi Chrome DOM, ekstraktira le vidno besedilo, gradi strukturiran prevodni paket in zapisuje rezultate nazaj na stran. Vsi težki robni primeri so avtomatski: zaporedja emoji, HTML entitete, pravila o ločilih in razmaku, mešane jezikovne nize ter preklapljanje od leve proti desni / od desne proti levi. Prav tako prepisuje jezikovno specifične skripte — vključno zin druge oznake strukturiranih podatkov — zagotavljajoč, da ima vsak jezik pravilne, neodvisne, predpomnjene metapodatke za iskalnike in AI sisteme. -
Obnašanje odjemalca.
Prikazuje jezikovne zastave, upošteva nevarne korenine in deluje kar se da varno z enostranskimi aplikacijami in okviri.
Vse to že deluje na Jit-TR spletnih mestih danes. Jit-Browser to preprosto ponovno uporablja v nadzorovanem brezglavem okolju.
Kaj je še potrebno za funkcijo v nativnem brskalniku
Kaj je še potrebno za funkcijo v nativnem brskalniku
Da bi Jit-Browser spremenili v vgrajeno funkcijo brskalnika, nihče ne potrebuje čudeža - le sposobnost postaviti majhen, dobro opredeljen sklop sprememb, ki jih brskalniški motorji že razumejo.
Da bi Jit-Browser spremenili v vgrajeno funkcijo brskalnika. To ni čudež, le majhen sklop sprememb, ki jih brskalniki že razumejo.
-
Nativna povezava v motorju.
Danes to simuliramo z vstavitvijo skripte iz brezglavega Chrome. Prava integracija bi Jit-TR dala namenski prevodni prostor, da lahko bere in piše besedilo DOM ob pravem trenutku v procesu upodabljanja. -
Standarden način za izražanje jezikovne namere.
Že uporabljamo?jittr=LANGin piškotke. Rešitev na ravni brskalnika bi lahko upoštevala nastavitve jezika brskalnika in izbire uporabnika, kot je "vedno prevede to spletno mesto v ES-419". -
Jasna varnostna in zasebnostna struktura.
Pravila o tem, kateri besedilni podatki lahko zapustijo napravo, kako dolgo jih je mogoče predpomniti in kako se lahko spletna mesta ali uporabniki odjavijo, bi morala biti jasna in dokumentirana. Nativna implementacija znotraj brskalnika je lahko dejansko varnejša od ad-hoc skript.
Primer: HarmonyOS v ES-419
Tukaj je konkreten primer delovanja procesa.
Imenujemo:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- Zagon brezglavega Chrome znotraj Dockerja.
- Naloži
https://www.harmonyos.com/. - Vstavi Jit-TR delček s parametrom ES-419.
- Dovoli Jit-TR, da prevede vidno kitajsko besedilo v španščino (Latinska Amerika).
- Shrani rezultat kot
ES-419/index.php.
Spletno mesto HarmonyOS se ne potrebuje spremeniti. Z vidika uporabnika se zdi, da spletno mesto preprosto podpira njihov jezik.
Zakaj ta stran obstaja
HeadlessChrome101 je povzetek, ki prikazuje:
- Uporabljamo prave brskalniške motorje in prave CSP pravila.
- Že imamo delujočo, lastniško prevodno izvajalsko enoto.
- Preostala vrzel do nativne funkcije brskalnika je majhna in dobro opredeljena.
Če gradite brskalnike, operacijske sisteme ali velike platforme in želite univerzalno večjezično plast, ki spoštuje vaš varnostni model, smo pripravljeni na pogovor. Koda obstaja. Obnašanje je merljivo. Naslednji korak je partnerstvo.