HeadlessChrome101: Kuinka Jit-Browser Muuttaa Chromen Täysimittaiseksi Monitoimiselain–Palvelin-Selainkerros
Tämä on selkokielinen opas siitä, mitä Jit-Browser tekee headless Chromen kanssa, kuinka se käyttää omaa Jit-TR-aikajanaa ja mitä vielä tarvitaan, jotta tämä olisi ensiluokkainen selainominaisuus eikä vain toinen skripti.
Yksinkertaisesta kuvakaappaustyökalusta Jit-Browseriin
Aloitimme pienellä komentorivityökalulla: getpage https://example.com page.png. Se käynnisti Chromen Docker-kontissa, otti kuvakaappauksen renderoidusta example.com-sivusta ja sulkeutui.
Hyödyllinen konseptin todistus. Jokainen kutsu oli kylmäkäynnistys. Se ei tiennyt mitään käännöksistä, istunnoista tai tilasta. Se oli vain headless-kamera.
Jit-Browser on seuraava askel. Se käyttää edelleen oikeaa Chrometa, mutta nyt:
- Se kirjaa, mitä sivulla tapahtuu.
- Se injektoi Jit-TR-skriptin käännöskerrokseksi.
- Se voi seurata yksinkertaisia virtoja, kuten evästebannerit tai avattavat valikot.
- Se tallentaa täysin käännetyn HTML:n, ei vain kuvakaappausta.
Tämä sivu selittää tuon putken, jotta voit nähdä, ettemme vain heiluttele käsiämme. Näytämme, kuinka selain-tason monikielinen kerros voi todella toimia.
Jit-Browser-putki 6 vaiheessa
Korkealla tasolla jokainen kaappaus seuraa samaa järjestystä.
-
Käynnistä oikea Chrome (headless) Dockerissa.
Käytämme Puppeteeria (pptr.dev) käynnistämään saman moottorin, joka voimaa normaaleja selaimia, mutta ilman näkyvää ikkunaa. Ei mukautettua jäsentä, ei vale-renderöintiä. -
Sovella evästeitä tai kirjautumistilaa (jos määritetty).
Demonstraatioissa, jotka tarvitsevat kirjautuneen istunnon, toistamme evästeesi. Ei raakavoimaa, ei salasanan arvaamista, ei tilien kaappaamista, joita emme hallitse. -
Lataa kohdesivu tarkalleen kuten käyttäjä.
HTML, CSS, JavaScript, fontit, kuvat. Odotammenetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle), jotta hitaat paketit ja fontit voivat ladata loppuun. -
Injektoi Jit-TR-koodinpätkä kerroksena.
Lisäämme skriptitaggin, joka osoittaa patenttihakemuksemme aikajanaan – esimerkiksi:. Jit-TR-aikajanan moduuli kulkee altistetun DOM:n (document.head ja document.body) läpi, lähettää poimittavan datan takaisin meidän (tai minkä tahansa) palvelimelle käsiteltäväksi, vastaanottaa tulokset (käännös, parannus tai uusi tieto), kirjoittaa näkyvän tekstin uudelleen ja lisää uusia merkityskerroksia alkuperäisen päälle. Ainoat olemassa olevat rajoitukset ovat yksinkertaisia: skriptejä voidaan laajentaa, mutta uudet ohjeet eivät koskaan voi häiritä sivuston omia skriptejä. Tämä toteutetaan tyypillisesti käyttämälläMutationObserverinstansseja seuraamaan merkityksellisiä muutoksia DOM:ssa, soveltamaan päivityksiä pienissä, kohdennetuissa päivityksissä ja välttämään olemassa olevan sovelluslogiikan tai tapahtumankäsittelijöiden koskettamista. -
Suorita valinnaisia virtoja: evästeet, napsautukset ja vieritys.
Oikeat sivut tarvitsevat usein yhden tai kaksi toimintoa: evästebannerin sulkeminen, valikon avaaminen, vierittäminen lisää tarjouksia varten. Jit-Browser voi suorittaa yksinkertaisen virta-skriptin, jotta nämä elementit ovat näkyvissä ennen kaappausta. -
Kaappaa laajennettu tulos.
Tallennamme:- Täysin muokattu HTML isännöintiä tai tarkastusta varten.
- Aikajälki mahdollisten pullonkaulojen tunnistamiseksi.
Se on HeadlessChrome101:n ydin. Se on mielikuva siitä, kuinka selain voisi käsitellä uusia tai olemassa olevia tietoja sisäänrakennettuna kerroksena minkä tahansa selaimen sisällä.
Miksi tämä ei ole vain leikkiskripti
Jit-Browser on tärkeä, koska se todistaa, että selain-tason kerros voidaan rakentaa samoilla osilla, joita selainvalmistajat käyttävät joka päivä, ja että tämä kerros voi turvallisesti isännöidä täyttä asiakas-palvelin vuorovaikutusta minkä tahansa ulkoisen palvelun kanssa, mukaan lukien oma Jit-TR-aikajamme. Se on myös kohta, jossa lisäämme SEO-tietoista parannusta, kuten rel="alternate" hreflang="..." linkkejä ja rikastettuja sitemap.xml merkintöjä. Käytännössä tämä tarkoittaa, että voimme paljastaa laajennettua tietoa ei-häiritsevissä HTML-alueissa, kuten elementeissä vasemmalla tai oikealla olemassa olevasta sivusta, tai käyttämällä JavaScript-moduuleja, jotka liittävät kielivalintoja ja SmartSearchia ilman, että ne häiritsevät alkuperäistä asettelua tai skriptejä.
-
Oikea Chrome-moottori.
Kaikki toimii Chromessa itsessään - vain ilman näkyvää ikkunaa. Jos se toimii Chromessa kävijöillesi, se toimii Jit-Browserissa. -
Sisältö turvallisuuspolitiikka tietoinen.
Useimmat sivustot rajoittavat skriptejä CSP:llä. Headless-tilassa voimme käyttää ChromensetBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) injektoi Jit-TR:n kaappaustilaan. Emme vaadi tuotantosivustoilta heikentää turvallisuuspolitiikkojaan. -
Koko aikataulu ja lokitus.
Lokitamme käynnistysaikoja, sivun latausaikoja, Jit-TR:n käynnistystä, prosessivaiheita ja kaappausta. Voit nähdä, mihin millisekunnit menevät ja mitä Jit-TR oikeasti tekee sivulla. -
Skripti- ja kerros-erottelu.
Tänään Jit-TR voi olla "vain skripti", jonka lisäät sivustolle. Jit-Browserissa käsittelemme sitä vakaana kerroksena, joka toimii aina. Se on hyvin lähellä sitä, miten selainvalmistaja voisi liittää sen natiivisti.
Mitä Jit-TR API jo ratkaisee
Vaikea osa ei ole headless Chrome. Vaikea osa on luotettavasti muuttaa eläviä, sotkuisia verkkosivuja turvallisiksi monikielisiksi versioiksi. Meidän oma ajonaikamme api.jit-tr.com tekee jo tuota työtä.
Tänään API:n ajonaika käsittelee:
-
Kielivalinta.
Se lukee parametreja kutenjittr=ES-419, normalisoi äärimmäiset tapaukset ja lokittaa valitun kielen, esimerkiksi:[Jit-TR] Valittu kieli → ES-419. -
DOM:n poiminta, käännös ja semanttiset uudelleenkirjoitukset.
Ajonaika kulkee oikean Chrome DOM:n läpi, poimii vain näkyvän tekstin, rakentaa rakenteellisen käännöspaketin ja kirjoittaa tulokset takaisin sivulle. Kaikki vaikeat äärimmäiset tapaukset ovat automaattisia: emojisarjat, HTML-entiteetit, välimerkit ja väliotsikkosäännöt, sekoitetut kielijonot ja vasemmalta oikealle / oikealta vasemmalle vaihtaminen. Se myös kirjoittaa uudelleen kielikohtaiset skriptiblokit — mukaan lukienja muut rakenteelliset tietotunnisteet — varmistaen, että jokaisella kielellä on oikeat, itsenäiset, välimuistissa olevat metatiedot hakukoneita ja tekoälyjärjestelmiä varten. -
Asiakkaan käyttäytyminen.
Se renderöi kielilippuja, kunnioittaa vaarallisia juuria ja toimii mahdollisimman turvallisesti yksisivuisissa sovelluksissa ja kehyksissä.
Kaikki tämä toimii jo Jit-TR-sivustoilla tänään. Jit-Browser yksinkertaisesti käyttää sitä hallitussa headless-ympäristössä.
Mitä vielä tarvitaan natiiville selainominaisuudelle
Mitä vielä tarvitaan natiiville selainominaisuudelle
Muuttamaan Jit-Browser natiiviksi selainominaisuudeksi, ei tarvitse ihmettä - vain kyky tehdä pieni, hyvin määritelty joukko muutoksia, jotka selainmoottorit jo ymmärtävät.
Muuttamaan Jit=-Browser natiiviksi selainominaisuudeksi. Tämä ei ole ihme, vain pieni joukko muutoksia, jotka selaimet jo ymmärtävät.
-
Natiivi koukku moottorissa.
Tänään simuloimme tätä injektoimalla skriptiä headless Chromesta. Todellinen integraatio antaisi Jit-TR:lle omistetun käännöspaikan, jotta se voi lukea ja kirjoittaa DOM-tekstiä oikeassa kohdassa renderöintiputkessa. -
Standardoitu tapa ilmaista kielitarkoitus.
Käytämme jo?jittr=LANGja evästeitä. Selain-tason ratkaisu voisi kunnioittaa selaimen kieliasetuksia ja käyttäjän valintoja, kuten "käännä tämä sivusto aina ES-419:ksi". -
Selkeä turvallisuus- ja yksityisyyskehys.
Säännöt siitä, mitä tekstiä voi poistua laitteesta, kuinka kauan sitä voidaan välimuistissa pitää ja kuinka sivustot tai käyttäjät voivat kieltäytyä, tulisi olla selkeitä ja dokumentoituja. Natiivi toteutus selaimen sisällä voi itse asiassa olla turvallisempaa kuin ad-hoc skriptit.
Esimerkki: HarmonyOS ES-419:ssä
Tässä on konkreettinen esimerkki putkistosta toiminnassa.
Kutsumme:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- Käynnistää headless Chromen Dockerin sisällä.
- Lataa
https://www.harmonyos.com/. - Injektoi Jit-TR:n pätkän ES-419-parametrilla.
- Antaa Jit-TR:n kääntää näkyvän kiinalaisen tekstin espanjaksi (Latinalainen Amerikka).
- Tallentaa tuloksen nimellä
ES-419/index.php.
HarmonyOS-sivuston ei tarvitse muuttua. Käyttäjän näkökulmasta näyttää siltä, että sivusto yksinkertaisesti tukee heidän kieltään.
Miksi tämä sivu on olemassa
HeadlessChrome101 on yhteenveto, joka näyttää:
- Käytämme oikeita selainmoottoreita ja oikeita CSP-sääntöjä.
- Meillä on jo toimiva, oma käännösaika.
- Jäljellä oleva kuilu natiivin selainominaisuuden saavuttamiseksi on pieni ja hyvin määritelty.
Jos rakennat selaimia, käyttöjärjestelmiä tai suuria alustoja ja haluat universaalin monikielisen kerroksen, joka kunnioittaa turvallisuusmalliasi, olemme valmiita keskustelemaan. Koodi on olemassa. Käyttäytyminen on mitattavissa. Seuraava askel on kumppanuus.