HeadlessChrome101: કેવી રીતે Jit-Browser Chrome ને સંપૂર્ણ મલ્ટી-ફંક્શન બ્રાઉઝર-સર્વર-બ્રાઉઝર લેયર માં ફેરવે છે
આ એક સરળ ભાષામાં સમજાવટ છે કે Jit-Browser હેડલેસ Chrome સાથે શું કરે છે, તે કેવી રીતે માલિકી Jit-TR રનટાઇમનો ઉપયોગ કરે છે, અને આને પ્રથમ-શ્રેણી બ્રાઉઝર ફીચર બનાવવા માટે શું હજુ પણ જરૂરી છે, માત્ર એક સ્ક્રિપ્ટ નહીં.
સરળ સ્ક્રીનશોટ ટૂલથી Jit-Browser સુધી
અમે એક નાનું કમાન્ડ-લાઇન ટૂલથી શરૂ કર્યું: getpage https://example.com page.png. તે Chrome ને Docker કન્ટેનરમાં શરૂ કરે છે, પેજમાંથી રેન્ડર કરેલ example.com નો સ્ક્રીનશોટ લે છે, અને બહાર નીકળે છે.
ઉપયોગી પ્રૂફ ઓફ કન્સેપ્ટ. દરેક કૉલ એક ઠંડા પ્રારંભ હતો. તે અનુવાદ, સત્રો, અથવા સ્થિતિ વિશે કશું જાણતું ન હતું. તે માત્ર એક હેડલેસ કેમેરા હતો.
Jit-Browser આગળનું પગલું છે. તે હજી પણ વાસ્તવિક Chrome નો ઉપયોગ કરે છે, પરંતુ હવે:
- તે પેજની અંદર શું થાય છે તે લોગ કરે છે.
- તે અનુવાદ લેયર તરીકે Jit-TR સ્ક્રિપ્ટને ઇન્જેક્ટ કરે છે.
- તે કૂકી બેનર્સ અથવા ડ્રોપડાઉન્સ જેવા સરળ પ્રવાહોને અનુસરી શકે છે.
- તે સંપૂર્ણ અનુવાદિત HTML કૅપ્ચર કરે છે, માત્ર સ્ક્રીનશોટ નહીં.
આ પેજ તે પાઇપલાઇનને સમજાવે છે જેથી તમે જોઈ શકો કે અમે હાથ હલાવી રહ્યા નથી. અમે બતાવી રહ્યા છીએ કે બ્રાઉઝર-સ્તરની બહુભાષી લેયર વાસ્તવમાં કેવી રીતે કાર્ય કરી શકે છે.
Jit-Browser પાઇપલાઇન 6 પગલાંમાં
ઉચ્ચ સ્તરે, દરેક કૅપ્ચર એક જ ક્રમનું અનુસરણ કરે છે.
-
Docker અંદર વાસ્તવિક Chrome (હેડલેસ) લોન્ચ કરો.
અમે Puppeteer (pptr.dev) નો ઉપયોગ કરીએ છીએ તે જ એન્જિન શરૂ કરવા માટે જે સામાન્ય બ્રાઉઝર્સને શક્તિ આપે છે, પરંતુ વિઝિબલ વિન્ડો વિના. કોઈ કસ્ટમ પાર્સર નથી, કોઈ નકલી રેન્ડરિંગ નથી. -
કૂકીઝ અથવા લૉગિન સ્થિતિ લાગુ કરો (જો કૉન્ફિગર કરેલ હોય).
ડેમોઝ માટે જે લૉગ ઇન સત્રની જરૂર છે, અમે તમારી કૂકીઝ ફરીથી ચલાવીએ છીએ. કોઈ બળજબરીથી, કોઈ પાસવર્ડ ગેસિંગ, કોઈ સ્ક્રેપિંગ એકાઉન્ટ્સ જે અમે નિયંત્રિત નથી. -
લક્ષ્ય પેજને વપરાશકર્તા જેમ જ લોડ કરો.
HTML, CSS, JavaScript, ફૉન્ટ્સ, છબીઓ. અમે રાહ જોતાnetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle) જેથી ધીમા બંડલ્સ અને ફૉન્ટ્સ લોડિંગ પૂર્ણ કરી શકે. -
Jit-TR સ્નિપેટને લેયર તરીકે ઇન્જેક્ટ કરો.
અમે અમારી પેટન્ટ-પેન્ડિંગ રનટાઇમ કોડ તરફ સંકેત આપતી સ્ક્રિપ્ટ ટૅગ ઉમેરીએ છીએ - ઉદાહરણ તરીકે:. Jit-TR રનટાઇમ મોડ્યુલ ખુલ્લા DOM (document.head અને document.body) પર ચાલે છે, પ્રોસેસ કરવા માટે અમારું (અથવા કોઈપણ) સર્વર પર કાઢેલ પેલોડ મોકલે છે, પરિણામો (અનુવાદ, સુધારો, અથવા નવી માહિતી) પ્રાપ્ત કરે છે, દૃશ્યમાન ટેક્સ્ટ ફરીથી લખે છે, અને મૂળ પર નવા અર્થના સ્તરો ઉમેરે છે. માત્ર મર્યાદાઓ સરળ છે: સ્ક્રિપ્ટ્સને વધારી શકાય છે, પરંતુ નવી સૂચનાઓ ક્યારેય સાઇટની પોતાની સ્ક્રિપ્ટ્સમાં હસ્તક્ષેપ કરી શકતી નથી. આ સામાન્ય રીતે DOM માં સંબંધિત ફેરફારો માટે જોવા માટેMutationObserverઉદાહરણોનો ઉપયોગ કરીને અમલમાં મૂકવામાં આવે છે, નાના, લક્ષ્યિત પેચમાં અપડેટ્સ લાગુ કરે છે, અને કોઈપણ અસ્તિત્વમાં રહેલા એપ્લિકેશન લોજિક અથવા ઇવેન્ટ હેન્ડલર્સને સ્પર્શ કરવાનું ટાળે છે. -
વૈકલ્પિક પ્રવાહો ચલાવો: કૂકીઝ, ક્લિક્સ, અને સ્ક્રોલ.
વાસ્તવિક પેજોને ઘણીવાર એક અથવા બે ક્રિયાઓની જરૂર હોય છે: કૂકી બેનર બંધ કરવું, મેનુ ખોલવું, વધુ ઑફર્સ લોડ કરવા માટે સ્ક્રોલ કરવું. Jit-Browser એક સરળ પ્રવાહ સ્ક્રિપ્ટ ચલાવી શકે છે જેથી તે તત્વો કૅપ્ચર પહેલાં દૃશ્યમાન હોય. -
વધારેલા આઉટપુટને કૅપ્ચર કરો.
અમે સાચવીશું:- હોસ્ટિંગ અથવા ઑડિટ માટે સંપૂર્ણ રીતે ફેરફાર કરેલ HTML.
- સંભવિત બોટલનેક્સ ઓળખવા માટે સમય ટ્રેસ.
આ છે અમારા HeadlessChrome101 નું મુખ્ય. તે માનસિક મોડેલ છે કે કેવી રીતે બ્રાઉઝર કોઈપણ બ્રાઉઝરમાં નવી અથવા અસ્તિત્વમાં રહેલી માહિતીને બિલ્ટ-ઇન લેયર તરીકે સારવાર કરી શકે છે.
આ માત્ર એક ટોય સ્ક્રિપ્ટ નથી તે માટે
Jit-Browser મહત્વપૂર્ણ છે કારણ કે તે સાબિત કરે છે કે બ્રાઉઝર-સ્તરની લેયર તે જ ટુકડાઓ સાથે બનાવી શકાય છે જે બ્રાઉઝર વેન્ડર્સ દરરોજ ઉપયોગ કરે છે, અને આ લેયર સુરક્ષિત રીતે કોઈપણ બાહ્ય સેવા સાથે સંપૂર્ણ ક્લાયન્ટ-સર્વર ક્રિયાપ્રતિક્રિયા હોસ્ટ કરી શકે છે, જેમાં અમારી પોતાની Jit-TR રનટાઇમનો સમાવેશ થાય છે. તે એ બિંદુ પણ છે જ્યાં અમે SEO-જાગૃત સુધારાઓ ઉમેરીએ છીએ જેમ કે rel="alternate" hreflang="..." લિંક્સ અને સમૃદ્ધ sitemap.xml પ્રવેશો. વ્યવહારમાં, આનો અર્થ એ છે કે અમે અસ્તિત્વમાં રહેલા પેજના ડાબા અથવા જમણા પરના તત્વો જેવા નોન-ડિસ્રપ્ટિવ HTML પ્રદેશોમાં વધારેલી માહિતી પ્રદર્શિત કરી શકીએ છીએ, અથવા મૂળ લેઆઉટ અથવા સ્ક્રિપ્ટ્સમાં હસ્તક્ષેપ કર્યા વિના ભાષા પસંદગીઓ અને SmartSearch જોડતા જાવાસ્ક્રિપ્ટ મોડલ્સનો ઉપયોગ કરીને.
-
વાસ્તવિક Chrome એન્જિન.
બધું Chrome પર જ ચાલે છે - ફક્ત વિઝિબલ વિન્ડો વિના. જો તે Chrome માં તમારા મુલાકાતીઓ માટે કાર્ય કરે છે, તો તે Jit-Browser માં કાર્ય કરે છે. -
કન્ટેન્ટ સિક્યુરિટી પોલિસી જાગૃત.
ઘણાં સાઇટ્સ CSP સાથે સ્ક્રિપ્ટ્સને લોક કરે છે. હેડલેસ મોડમાં અમે Chrome નીsetBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) કૅપ્ચર પર્યાવરણમાં Jit-TR ઇન્જેક્ટ કરવા માટે. અમને કોઈ પ્રોડક્શન સાઇટ્સને તેમની સુરક્ષા નીતિઓને નબળી કરવાની જરૂર નથી. -
સંપૂર્ણ ટાઈમિંગ અને લોગિંગ.
અમે લોન્ચ ટાઈમ્સ, પેજ લોડ ટાઈમ્સ, Jit-TR સ્ટાર્ટઅપ, ફ્લો સ્ટેપ્સ, અને કૅપ્ચર લોગ કરીએ છીએ. તમે જોઈ શકો છો કે મિલિસેકન્ડ્સ ક્યાં જાય છે અને Jit-TR પેજ પર ખરેખર શું કરે છે. -
સ્ક્રિપ્ટ અને લેયરનો વિભાજન.
આજે, Jit-TR "માત્ર એક સ્ક્રિપ્ટ" હોઈ શકે છે જે તમે સાઇટમાં ઉમેરો છો. Jit-Browser માં અમે તેને એક સ્થિર લેયર તરીકે માનીએ છીએ જે હંમેશા ચાલે છે. તે ખૂબ નજીક છે કે કેવી રીતે બ્રાઉઝર વેન્ડર તેને મૂળભૂત રીતે પ્લગ કરી શકે છે.
Jit-TR API પહેલેથી જ શું ઉકેલે છે
મુશ્કેલ ભાગ હેડલેસ ક્રોમ નથી. મુશ્કેલ ભાગ જીવંત, ગંદા વેબ પેજોને સુરક્ષિત બહુભાષી સંસ્કરણોમાં વિશ્વસનીય રીતે ફેરવવાનો છે. અમારી માલિકી રનટાઇમ api.jit-tr.com પહેલેથી જ તે કામ કરે છે.
આજે, API રનટાઇમ સંભાળે છે:
-
ભાષા પસંદગી.
તે જેવા પેરામિટર્સ વાંચે છેjittr=ES-419, કિનારી કેસો સામાન્ય કરે છે, અને પસંદ કરેલી ભાષા લોગ કરે છે, ઉદાહરણ તરીકે:[Jit-TR] પસંદ કરેલી ભાષા → ES-419. -
DOM એક્સટ્રેક્શન, અનુવાદ, અને અર્થપૂર્ણ પુનર્લેખન.
રનટાઇમ વાસ્તવિક ક્રોમ DOM પર ચાલે છે, માત્ર દૃશ્યમાન ટેક્સ્ટને કાઢે છે, એક રચનાત્મક અનુવાદ પેલોડ બનાવે છે, અને પરિણામોને પેજમાં પાછા લખે છે. બધા મુશ્કેલ કિનારી કેસો આપમેળે છે: ઇમોજી ક્રમ, HTML એન્ટિટીઝ, વિરુદ્ધ અને અંતર નિયમો, મિશ્ર-ભાષા સ્ટ્રિંગ્સ, અને ડાબેથી જમણે / જમણેથી ડાબે સ્વિચિંગ. તે ભાષા-વિશિષ્ટ સ્ક્રિપ્ટ બ્લોક્સને પણ પુનર્લેખે છે — જેમાંઅને અન્ય રચનાત્મક-ડેટા ટૅગ્સ — ખાતરી કરે છે કે દરેક ભાષા પાસે શોધ એન્જિન્સ અને AI સિસ્ટમ્સ માટે યોગ્ય, સ્વતંત્ર, કેશ કરેલ મેટાડેટા છે. -
ક્લાયન્ટ વર્તન.
તે ભાષા ધ્વજોને રેન્ડર કરે છે, અસુરક્ષિત મૂળોને માન આપે છે, અને સિંગલ-પેજ એપ્સ અને ફ્રેમવર્ક્સ સાથે શક્ય તેટલું સુરક્ષિત રીતે રમે છે.
આ બધું આજે Jit-TR સાઇટ્સ પર ચાલે છે. Jit-Browser તેને નિયંત્રિત હેડલેસ પર્યાવરણમાં ફક્ત પુનઃઉપયોગ કરે છે.
મૂળ બ્રાઉઝર ફીચર માટે હજુ શું જરૂરી છે
મૂળ બ્રાઉઝર ફીચર માટે હજુ શું જરૂરી છે
Jit-Browser ને બિલ્ટ-ઇન બ્રાઉઝર ફીચરમાં ફેરવવા માટે, કોઈને ચમત્કારની જરૂર નથી - ફક્ત નાના, સારી રીતે વ્યાખ્યાયિત ફેરફારોનો સેટ મૂકવાની ક્ષમતા જે બ્રાઉઝર એન્જિનો પહેલેથી જ સમજે છે.
Jit=-Browser ને બિલ્ટ-ઇન બ્રાઉઝર ફીચરમાં ફેરવવા માટે. આ કોઈ ચમત્કાર નથી, ફક્ત નાના ફેરફારોનો સેટ છે જે બ્રાઉઝર્સ પહેલેથી જ સમજે છે.
-
એન્જિનમાં એક મૂળ હૂક.
આજે અમે હેડલેસ ક્રોમમાંથી સ્ક્રિપ્ટ ઇન્જેક્ટ કરીને આનું અનુસરણ કરીએ છીએ. એક વાસ્તવિક એકીકરણ Jit-TR ને એક સમર્પિત અનુવાદ સ્લોટ આપશે જેથી તે રેન્ડરિંગ પાઇપલાઇનમાં યોગ્ય બિંદુએ DOM ટેક્સ્ટ વાંચી અને લખી શકે. -
ભાષા ઇરાદાને વ્યક્ત કરવાની એક માનક રીત.
અમે પહેલેથી જ ઉપયોગ કરીએ છીએ?jittr=LANGઅને કૂકીઝ. બ્રાઉઝર-સ્તરની ઉકેલ બ્રાઉઝર ભાષા સેટિંગ્સ અને વપરાશકર્તા પસંદગીઓનું માન રાખી શકે છે જેમ કે "આ સાઇટને હંમેશા ES-419 માં અનુવાદિત કરો". -
એક સ્પષ્ટ સુરક્ષા અને ગોપનીયતા ફ્રેમવર્ક.
કયા ટેક્સ્ટ ઉપકરણ છોડી શકે છે, તે કેટલો સમય કેશ કરી શકાય છે, અને સાઇટ્સ અથવા વપરાશકર્તાઓ કેવી રીતે બહાર નીકળી શકે છે તે માટેના નિયમો સ્પષ્ટ અને દસ્તાવેજીકૃત હોવા જોઈએ. બ્રાઉઝરમાં એક મૂળ અમલ વાસ્તવમાં એડ-હોક સ્ક્રિપ્ટ્સ કરતાં વધુ સુરક્ષિત હોઈ શકે છે.
ઉદાહરણ: HarmonyOS માં ES-419
અહીં ક્રિયામાં પાઇપલાઇનનું એક કંક્રીટ ઉદાહરણ છે.
અમે કૉલ કરીએ છીએ:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- ડોકરમાં હેડલેસ ક્રોમ લોન્ચ કરે છે.
- લોડ કરે છે
https://www.harmonyos.com/. - ES-419 પેરામિટર સાથે Jit-TR સ્નિપેટ ઇન્જેક્ટ કરે છે.
- Jit-TR ને દૃશ્યમાન ચાઇનીઝ ટેક્સ્ટને સ્પેનિશ (લેટિન અમેરિકા) માં અનુવાદિત કરવા દે છે.
- પરિણામને તરીકે સાચવે છે
ES-419/index.php.
HarmonyOS સાઇટને બદલવાની જરૂર નથી. વપરાશકર્તાના દ્રષ્ટિકોણથી, તે સાઇટ ફક્ત તેમની ભાષાને સપોર્ટ કરે છે તેવું લાગે છે.
આ પેજ કેમ અસ્તિત્વમાં છે
HeadlessChrome101 એ એક સારાંશ છે જે બતાવે છે:
- અમે વાસ્તવિક બ્રાઉઝર એન્જિનો અને વાસ્તવિક CSP નિયમોનો ઉપયોગ કરી રહ્યા છીએ.
- અમારી પાસે પહેલેથી જ કાર્યરત, માલિકી અનુવાદ રનટાઇમ છે.
- મૂળ બ્રાઉઝર ફીચર માટે બાકીનું અંતર નાનું અને સારી રીતે વ્યાખ્યાયિત છે.
જો તમે બ્રાઉઝર્સ, ઓપરેટિંગ સિસ્ટમ્સ, અથવા મોટા પ્લેટફોર્મ્સ બનાવો છો અને તમારી સુરક્ષા મોડલનો સન્માન કરતી સર્વવ્યાપી બહુભાષી સ્તર ઇચ્છો છો, તો અમે વાત કરવા માટે તૈયાર છીએ. કોડ અસ્તિત્વમાં છે. વર્તન માપી શકાય છે. આગળનું પગલું ભાગીદારી છે.