HeadlessChrome101: როგორ Jit-Browser აქცევს Chrome-ს სრულ მრავალფუნქციურ ბრაუზერად–სერვერ-ბრაუზერის ფენა
ეს არის მარტივი ენის გასავლელი იმაზე, რაც Jit-Browser აკეთებს headless Chrome-თან, როგორ იყენებს ის საკუთრებას Jit-TR runtime-ს და რა არის საჭირო, რომ ეს იყოს პირველი კლასის ბრაუზერის ფუნქცია, უბრალოდ კიდევ ერთი სკრიპტის ნაცვლად.
განვითარებული სკრინშოტის ინსტრუმენტიდან Jit-Browser-ისკენ
ჩვენ დავიწყეთ პატარა ბრძანების ხაზის ინსტრუმენტით: getpage https://example.com page.png. მან Chrome აამუშავა Docker კონტეინერში, გადაიღო სკრინშოტი rendered example.com-დან გვერდიდან და გამოვიდა.
სარგებლიანი კონცეფციის მტკიცებულება. ყოველი ზარი იყო ცივი დაწყება. მას არაფერი იცოდა თარგმნის, სესიების ან მდგომარეობის შესახებ. ეს იყო უბრალოდ headless კამერა.
Jit-Browser არის შემდეგი ნაბიჯი. ის კვლავ იყენებს ნამდვილ Chrome-ს, მაგრამ ახლა:
- ის რეგისტრირებს, რაც ხდება გვერდის შიგნით.
- ის Inject-ავს Jit-TR სკრიპტს როგორც თარგმნის ფენას.
- ის შეუძლია გაწვდოს მარტივი ნაკადები, როგორიცაა ქუქი ბანერები ან ჩამოსაშლელი მენიუები.
- ის იჭერს სრულად თარგმნილ HTML-ს, არა მხოლოდ სკრინშოტს.
ეს გვერდი განმარტავს იმ pipeline-ს, ასე რომ თქვენ შეგიძლიათ ნახოთ, რომ ჩვენ არ ვამბობთ უბრალოდ სიტყვებს. ჩვენ ვაჩვენებთ, როგორ შეიძლება ბრაუზერის დონეზე მრავალენოვანი ფენა რეალურად იმუშაოს.
Jit-Browser-ის pipeline 6 ნაბიჯში
მაღალი დონეზე, ყოველი დაჭერა მიჰყვება ერთსა და იმავე თანმიმდევრობას.
-
გააშუქეთ რეალური Chrome (headless) Docker-ის შიგნით.
ჩვენ ვიყენებთ Puppeteer-ს (pptr.dev), რომ დავიწყოთ იგივე ძრავა, რომელიც ამუშავებს ჩვეულებრივ ბრაუზერებს, მაგრამ უხილავი ფანჯრის გარეშე. არც ერთი სპეციალური parser, არც ერთი ყალბი რენდერინგი. -
გამოიყენეთ ქუქი ან შესვლის მდგომარეობა (თუ კონფიგურირებულია).
დემოებისთვის, რომლებსაც სჭირდებათ შესული სესია, ჩვენ ვათამაშებთ თქვენს ქუქებს. არც ერთი ძალადობა, არც ერთი პაროლის გამოცდა, არც ერთი ანგარიშების სკრაპინგი, რომელსაც ჩვენ არ ვაკონტროლებთ. -
მიზნობრივი გვერდის დატვირთვა ზუსტად ისე, როგორც მომხმარებელი.
HTML, CSS, JavaScript, შრიფტები, სურათები. ჩვენ ველოდებითnetworkidle2(https://pptr.dev/api/puppeteer.page.waitfornetworkidle), ასე რომ ნელი პაკეტები და შრიფტები დასრულდეს დატვირთვა. -
Inject-ავს Jit-TR სკრიპტის ნაწილაკს როგორც ფენას.
ჩვენ ვამატებთ სკრიპტის ტეგს, რომელიც მიუთითებს ჩვენს პატენტირებულ runtime კოდზე – მაგალითად:. Jit-TR runtime მოდული გადის გამჟღავნებულ DOM-ზე (document.head და document.body), აგზავნის ამოღებულ დატვირთვას ჩვენს (ან ნებისმიერ) სერვერზე დამუშავებისთვის, იღებს შედეგებს (თარგმნა, გაუმჯობესება ან ახალი ინფორმაცია), წერს ხილულ ტექსტს და ამატებს ახალ მნიშვნელობათა ფენებს ორიგინალზე. ერთადერთი შეზღუდვები, რაც არსებობს, არის მარტივი: სკრიპტები შეიძლება გაწვდოს, მაგრამ ახალი ინსტრუქციები არასოდეს შეიძლება შე interfere-ოს საიტის საკუთარ სკრიპტებთან. ეს ჩვეულებრივ განხორციელებულიაMutationObserverინსტანციების გამოყენებით, რომ დააკვირდეთ შესაბამის ცვლილებებს DOM-ში, განახორციელონ განახლებები მცირე, მიზნობრივი პაჩებით და თავიდან აიცილონ ნებისმიერი არსებული აპლიკაციის ლოგიკა ან მოვლენების დამუშავება. -
გაატარეთ სავალდებულო ნაკადები: ქუქები, დაწკაპუნებები და გადახვევა.
ნამდვილი გვერდები ხშირად საჭიროებენ ერთ ან ორ მოქმედებას: ქუქი ბანერის დახურვა, მენიუს გახსნა, მეტი შეთავაზებების დატვირთვისთვის გადახვევა. Jit-Browser შეუძლია გაწვდოს მარტივი ნაკადის სკრიპტი, ასე რომ ეს ელემენტები ხილული იყოს დაჭერის წინ. -
დაჭერით გაწვდილი შედეგი.
ჩვენ ვშლით:- სრულად შეცვლილი HTML ჰოსტინგისთვის ან აუდიტისთვის.
- დროის კვალი პოტენციური ბოთლნეკების იდენტიფიცირებისთვის.
ეს არის ჩვენი HeadlessChrome101-ის ძირითადი ნაწილი. ეს არის მენტალური მოდელი, თუ როგორ შეიძლება ბრაუზერმა მოექცეს ახალ ან არსებულ მონაცემებს როგორც მშენებელი ფენა ნებისმიერ ბრაუზერში.
რატომ ეს არ არის უბრალოდ სათამაშო სკრიპტი
Jit-Browser მნიშვნელოვანია, რადგან ის ადასტურებს, რომ ბრაუზერის დონეზე ფენა შეიძლება აშენდეს იმავე ნაწილებით, რომლებიც ბრაუზერის მომწოდებლები ყოველდღიურად იყენებენ, და რომ ეს ფენა უსაფრთხოდ შეუძლია მოაწყოს სრული კლიენტ-სერვერის ურთიერთობა ნებისმიერ საგარეო სერვისთან, მათ შორის ჩვენს Jit-TR runtime-ს. ეს ასევე არის წერტილი, სადაც ჩვენ ვამატებთ SEO-ს ცნობიერ გაუმჯობესებებს, როგორიცაა rel="alternate" hreflang="..." ბმულები და გაწვდილი sitemap.xml შესახებ. პრაქტიკაში, ეს ნიშნავს, რომ ჩვენ შეგვიძლია გავამჟღავნოთ გაწვდილი ინფორმაცია არაწყვეტილი HTML რეგიონებში, როგორიცაა ელემენტები არსებული გვერდის მარცხენა ან მარჯვენა მხარეს, ან JavaScript მოდალების გამოყენებით, რომლებიც ენის არჩევანს და SmartSearch-ს აკავშირებენ, არ interfering-ით ორიგინალური განლაგება ან სკრიპტები.
-
ნამდვილი Chrome ძრავა.
ყველაფერი მუშაობს Chrome-ის საკუთარ თავზე - უბრალოდ უხილავი ფანჯრის გარეშე. თუ ეს მუშაობს Chrome-ში თქვენი ვიზიტორებისთვის, ეს მუშაობს Jit-Browser-ში. -
შინაარსის უსაფრთხოების პოლიტიკის ცნობიერი.
მრავალი საიტი კეტავს სკრიპტებს CSP-ით. headless რეჟიმში ჩვენ შეგვიძლია გამოვიყენოთ Chrome-ისsetBypassCSP(true)(https://pptr.dev/api/puppeteer.page.setbypasscsp) Jit-TR-ის ჩასასმელად ჩაწერის გარემოში. ჩვენ არ გვჭირდება, რომ რომელიმე წარმოების საიტმა დაასუსტოს მათი უსაფრთხოების პოლიტიკა. -
სრული დრო და ლოგირება.
ჩვენ ვწვდით გაშვების დროსებს, გვერდის დატვირთვის დროსებს, Jit-TR-ის გაშვების დროს, ნაკადის ნაბიჯებს და დაფიქსირებას. თქვენ შეგიძლიათ ნახოთ, სად მიდის მილიწამები და რა აკეთებს Jit-TR რეალურად გვერდზე. -
სკრიპტისა და ფენის გამიჯვნა.
დღეს, Jit-TR შეიძლება იყოს "მხოლოდ სკრიპტი", რომელიც თქვენ დაამატებთ ვებსაიტზე. Jit-Browser-ში ჩვენ მას ვექცევით როგორც სტაბილურ ფენას, რომელიც ყოველთვის მუშაობს. ეს ძალიან ახლოს არის იმასთან, თუ როგორ შეუძლია ბრაუზერის მწარმოებელს მას ნატურალურად ჩართოს.
რა უკვე ხსნის Jit-TR API
მძიმე ნაწილი არაა უსახელო Chrome. მძიმე ნაწილი არის საიმედოდ გარდაქმნა ცოცხალი, არეულ ვებსაიტების უსაფრთხო მრავალენოვანი ვერსიებისადმი. ჩვენი საკუთრების დროის შესრულება api.jit-tr.com ეს უკვე აკეთებს ამ საქმეს.
დღეს, API-ის გაწვდილი მართავს:
-
ენების არჩევა.
ეს კითხულობს პარამეტრებს, როგორიცააjittr=ES-419, ნორმალიზებს კიდურების შემთხვევებს და ლოგავს არჩეულ ენას, მაგალითად:[Jit-TR] ენა არჩეული → ES-419. -
DOM ექსტრაქცია, თარგმნა და სემანტიკური გადაკეთებები.
რანტაიმი რეალურ Chrome DOM-ს გადის, მხოლოდ ხილული ტექსტი გამოაქვს, სტრუქტურირებული თარგმანის დატვირთვას ქმნის და შედეგებს გვერდზე აბრუნებს. ყველა რთული შემთხვევა ავტომატურია: ემოჯი სექვენციები, HTML ერთეულები, პუნქტუაციის და სივრცის წესები, შერეული ენის სტრიქონები და მარცხნიდან მარჯვნივ / მარჯვნიდან მარცხნივ გადართვა. ის ასევე ხელახლა წერს ენის სპეციფიურ სკრიპტ ბლოკებს — მათ შორისდა სხვა სტრუქტურირებული მონაცემების ტეგები — უზრუნველყოფს, რომ თითოეულ ენას ჰქონდეს სწორი, დამოუკიდებელი, კეშირებული მეტადატა საძიებო სისტემებისთვის და AI სისტემებისთვის. -
კლენტის ქცევა.
ეს წარმოგიდგენთ ენის დროშებს, პატივს სცემს უსაფრთხო არებს და თამაშობს რაც შეიძლება უსაფრთხოდ ერთგვაროვანი აპლიკაციებისა და ჩარჩოების შემთხვევაში.
ყველაფერი ეს უკვე მუშაობს Jit-TR ვებსაიტებზე დღეს. Jit-Browser უბრალოდ იყენებს მას კონტროლირებად ჰედლეს გარემოში.
რა არის ჯერ კიდევ საჭირო ადგილობრივი ბრაუზერის ფუნქციისთვის
რა არის ჯერ კიდევ საჭირო ადგილობრივი ბრაუზერის ფუნქციისთვის
Jit-Browser-ის გარდაქმნა ჩაშენებულ ბრაუზერის ფუნქციად არ საჭიროებს სასწაულს - უბრალოდ საჭიროა მცირე, კარგად განსაზღვრული ცვლილებების განხორციელება, რომლებიც ბრაუზერის ძრავებს უკვე ესმით.
Jit=-ბრაუზერის გადაქცევა ბრაუზერის ჩაშენებულ ფუნქციად. ეს არ არის სასწაული, უბრალოდ მცირე ცვლილებების ნაკრები, რომელსაც ბრაუზერები უკვე ხვდებიან.
-
მშვენიერი ხრიკი ძრავაში.
დღეს ჩვენ ამას ვსიმულირებთ headless Chrome-ის სკრიპტის ჩასმით. რეალური ინტეგრაცია Jit-TR-ს მიაწვდიდა სპეციალურ თარგმანის სლოტს, რათა ის შეძლოს DOM ტექსტის წაკითხვა და წერა Rendering pipeline-ის სწორ წერტილში. -
ენების განზრახვის გამოხატვის სტანდარტული გზა.
ჩვენ უკვე ვიყენებთ?jittr=LANGდა ნამცხვრები. ბრაუზერის დონეზე გადაწყვეტა შეიძლება პატივს სცემდეს ბრაუზერის ენის პარამეტრებს და მომხმარებლის არჩევანს, როგორიცაა "ამ საიტის ყოველთვის თარგმნა ES-419-ზე". -
სუფთა უსაფრთხოების და კონფიდენციალურობის ჩარჩო.
წესები, თუ რა ტექსტი შეიძლება დატოვოს მოწყობილობამ, რამდენ ხანს შეიძლება იყოს კეშირებული და როგორ შეიძლება ვებსაიტებმა ან მომხმარებლებმა უარი თქვან, უნდა იყოს ნათელი და დოკუმენტირებული. ბრაუზერში ნატურალური იმპლემენტაცია სინამდვილეში უფრო უსაფრთხო შეიძლება იყოს, ვიდრე ად-ჰოკ სკრიპტები.
მაგალითი: HarmonyOS in ES-419
აქ არის კონკრეტული მაგალითი მილსადენის მოქმედებაში.
ჩვენ ვიძახით:
getpageJtrBrowser \
"https://www.harmonyos.com/" \
"jittr=ES-419" \
null \
"ES-419/index.php"
Jit-Browser:
- დოკერში ჰედლესი Chrome-ის გაშვება.
- ტვირთები
https://www.harmonyos.com/. - შეაქვს Jit-TR-ის ნაჭერი ES-419 პარამეტრით.
- მოდით, Jit-TR თარგმნოს ხილული ჩინური ტექსტი ესპანურად (ლათინური ამერიკა).
- შედეგის შენახვა როგორც
ES-419\/index.php.
HarmonyOS-ის ვებსაიტი არ საჭიროებს ცვლილებას. მომხმარებლის თვალსაზრისით, ეს ვებსაიტი უბრალოდ უჭერს მხარს მათ ენას.
რატომ არსებობს ეს გვერდი
HeadlessChrome101 არის შეჯამება, რომელიც აჩვენებს:
- ჩვენ ვიყენებთ რეალურ ბრაუზერის ძრავებს და რეალურ CSP წესებს.
- ჩვენ უკვე გვაქვს მოქმედი, კერძო თარგმანის დროის სისტემა.
- მიუხედავად იმისა, რომ დარჩენილი განსხვავება ადგილობრივი ბრაუზერის ფუნქციის მიმართ მცირე და კარგად განსაზღვრულია.
თუ თქვენ აშენებთ ბრაუზერებს, ოპერაციულ სისტემებს ან დიდ პლატფორმებს და გსურთ უნივერსალური მრავალენოვანი ფენა, რომელიც პატივს სცემს თქვენს უსაფრთხოების მოდელს, ჩვენ მზად ვართ ვისაუბროთ. კოდი არსებობს. ქცევა გაზომვადია. შემდეგი ნაბიჯი არის პარტნიორობა.