The Puppeteer-ը բաց կոդով java շրջանակ է, որը մշակվել է node-js գրադարանով: The Puppeteer-ն ունի վեբ քերծող գործիք աշխատելու ունակություն: Այն կարող է օգտագործվել նաև որպես թեստային ավտոմատացում վեբ վրա հիմնված հավելվածների համար, ինչպես սելենի վեբ վարորդը: Puppeteer-ի ժողովրդականությունը արագորեն աճում է թեստային ավտոմատացման համար: Puppeteer Tutorial-ի միջով անցնելու նախադրյալներն են հրամանի տողի, JavaScript-ի, OOPs հայեցակարգի և HTML DOM կառուցվածքի հիմնական գիտելիքները: Ամբողջական Տիկնիկավարի ձեռնարկ բաշխված է թեմաների, որոնք նշված են ստորև բերված բովանդակության աղյուսակում:
Տիկնիկավարի ձեռնարկ
Tosca ձեռնարկ #1: Տիկնիկավարի ակնարկ
Տոսկա Խնամակալական #2: Puppeteer միջավայրի փոփոխականներ
Տոսկա Խնամակալական #3: Puppeteer Web Scraping and Puppeteer Test Automation Overview
Տոսկա Խնամակալական #4: Տեղադրեք Puppeteer-ը
-ի այս հոդվածում Տիկնիկավարի ձեռնարկ, մենք կբացատրենք Puppeteer Overview-ի և Puppeteer Environment Variables-ի մասին:
Տիկնիկավարի ակնարկ
The Puppeteer-ը բաց կոդով java շրջանակ է, որը մշակվել է node-js գրադարանով: Puppeteer-ը ի վիճակի է կառավարել Chrome բրաուզերը devtool արձանագրության միջոցով բարձր մակարդակի հավելվածի միջերեսի (API) օգնությամբ: The Puppeteer-ն ի վիճակի է կառավարել ինչպես գլխավերեւ, այնպես էլ անգլուխ քրոմ բրաուզերները:
Puppeteer շրջանակը ներկայացվել է Google-ի կողմից: Ինչ վերաբերում է ֆունկցիոնալությանը, դա նոր հայեցակարգ չէ: Բայց դա հեշտացնում է աշխատանքը: Սկզբունքորեն, այն ամփոփում է գործողությունների ցանկը սեղմված փաթեթի միջոցով:

Ինչպե՞ս են աշխատում տիկնիկավարները:
- Puppeteer-ն օգտագործում է Node JS գրադարանը:
- Node JS-ը թույլ է տալիս օգտագործել բարձր մակարդակի API-ներ:
- API-ները կարող են կառավարել Chrome բրաուզերը devtool արձանագրության միջոցով:
- Լռելյայնորեն, Puppeteer-ն աշխատում է առանց գլխի Chrome բրաուզերների հետ, սակայն այն կարող է փոխազդել նաև գլխավոր Chrome բրաուզերների հետ՝ փոխելով լռելյայն կոնֆիգուրացիան:
Chrome DevTools արձանագրություն:
Օգտագործելով Chrome DevTools Protocol-ը, գործիքները, ինչպիսիք են Puppeteer-ը, կարող են գործիքավորել, ստուգել, վրիպազերծել և պրոֆիլավորել թարթման վրա հիմնված բրաուզերները, ինչպիսիք են Chromium-ը, Chrome-ը և այլն:
Այստեղ զննարկչի գործիքավորումը բաժանված է մի շարք տիրույթների, ինչպիսիք են DOM, Debugger, Network և այլն: Յուրաքանչյուր տիրույթ բացատրում է բոլոր տարբեր աջակցվող հրամանները և առաջացած իրադարձությունները:
Puppeteer-ի առանձնահատկությունները.
- Chrome բրաուզերի միջոցով ձեռքով գործընթացները կարող են ավտոմատացվել:
- Այն կարող է նկարահանել ցանկացած վեբ էջի սքրինշոթ և ստեղծել սքրինշոթի պատկեր կամ pdf ֆայլ:
- Սերվերի կողմից մատուցվող մեկ էջի հավելված կարող է մշակվել Puppeteer-ի միջոցով:
- Այն կարող է ավտոմատացնել վեբ ձևերի ներկայացումը, UI-ի փորձարկումը, ստեղնաշարի մուտքագրումը և այլն՝ անցակետերով:
- Այն ապահովում է ավելի մեծ վերահսկողություն Chrome բրաուզերի նկատմամբ:
- Լռելյայն առանց գլխի ռեժիմը շատ արագ է:
- Այն աջակցում է վեբ քերծմանը:
- Chrome-ի կատարողականի վերլուծության գործիքների միջոցով ցուցադրման և բեռնման ժամանակը չափելու ունակություն:
Puppeteer vs Puppeteer-core:
Քանի որ Puppeteer տարբերակը v1.7.0, երկու փաթեթից ներքև, հասանելի է յուրաքանչյուր թողարկումում.
- տիկնիկավար-միջուկ փաթեթ
- տիկնիկավարի փաթեթ
Puppeteer-core Փաթեթ:
Տիկնիկագործ-միջուկ java-base Node գրադարան է, որն ի վիճակի է կատարել ցանկացած գործողություն, որն աջակցում է DevTools արձանագրությանը: Puppeteer-core-ը չի ներբեռնում Chromium-ը տեղադրման ընթացքում: Որպես գրադարան՝ Puppeteer-core-ն ամբողջությամբ առաջնորդվում է իր ծրագրային ինտերֆեյսի միջոցով: Բացի այդ, Puppeteer-core-ի առանձնահատկությունները չեն կարող հարմարեցվել բոլոր PUPPETEER_* env փոփոխականների կողմից: Puppeteer-core-ը տեղադրելու հիմնական հրամանը.
npm install puppeteer-core
# or "yarn add puppeteer-core"
Puppeteer-core-ն օգտագործելիս ներառել հայտարարությունները նման կլինեն ստորև.
const puppeteer = require('puppeteer-core')
Երբ օգտագործել Puppeteer-Core:
- Puppeteer նախագիծը մշակելու համար գոյություն ունեցող Chrome դիտարկիչը DevTools արձանագրության միջոցով օգտագործելու համար, որտեղ լրացուցիչ քրոմի ներբեռնում չի պահանջվում:
- DevTools արձանագրության վրա մեկ այլ վերջնական օգտագործողի արտադրանք կամ գրադարան մշակելու համար: Օրինակ՝ մի նախագիծ կարող է ստեղծել սքրինշոթի գեներատոր՝ օգտագործելով puppeteer-core և գրել հատուկ setup.js սկրիպտ, որը ներբեռնում է headless_shell-ը Chromium-ի փոխարեն՝ պահեստը խնայելու համար:
Տիկնիկավար Փաթեթ:
Տիկնիկագործ Chrome կամ Chromium բրաուզերի ավտոմատացման ամբողջական արտադրանք է: Տեղադրման ընթացքում այն ներբեռնում է Chromium-ի վերջին տարբերակը, իսկ դրանից հետո այն վարում էր puppeteer-core-ը։ Որպես վերջնական օգտագործողի արտադրանք՝ Puppeteer-ն աջակցում է բոլոր PUPPETEER_* env փոփոխականներին՝ իր վարքագիծը հարմարեցնելու համար: Puppeteer-ը տեղադրելու հիմնական հրամանը.
npm install puppeteer
# or "yarn add puppeteer"
Puppeteer-ն օգտագործելիս ներառեք հայտարարություններ, որոնք նման կլինեն ստորև.
puppeteer = require(‘puppeteer’)
Puppeteer-ի և Puppeteer-core-ի միջև տարբերությունը.
- Puppeteer-core-ը տեղադրման ընթացքում ավտոմատ կերպով չի ներբեռնում Chromium դիտարկիչը:
- Puppeteer-core-ը չի դիտարկում բոլոր PUPPETEER_* env փոփոխականները:
- Նախագծերի մեծ մասում մենք օգտագործում ենք Puppeteer արտադրանքի փաթեթը:
Անգլուխ Chrome:
Անգլուխ քրոմը նշանակում է, որ Puppeteer-ը փոխազդում է քրոմ բրաուզերի հետ որպես ֆոնային հավելված, ինչը նշանակում է, որ քրոմի միջերեսը տեսանելի չէ էկրանին: Լռելյայնորեն, Puppeteer-ը գործարկում է հավելվածը որպես անգլուխ քրոմ: Կոդի նմուշ՝ Headless Chrome-ը գործարկելու համար –
Այս օրինակում մենք բացում ենք անգլուխ քրոմը, այսինքն՝ Chrome UI-ն տեսանելի չի լինի։ Դա կարելի է անել՝ առանց գլխի դրոշը փոխանցելով որպես հավատարիմ Puppeteer.launch մեթոդին():
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: true });
// Specify statements for Headless Chrome operations
await browser.close();
})();
Գլխավոր Chrome:
Գլխավոր քրոմը նշանակում է, որ Puppeteer-ը փոխազդում է Chrome դիտարկիչի հետ, որի համար Chrome UI-ը տեսանելի է էկրանին: Լռելյայնորեն, Puppeteer-ը գործարկում է հավելվածը որպես անգլուխ քրոմ: Կոդի նմուշ Headful Chrome-ը գործարկելու համար –
Այս օրինակում մենք բացում ենք քրոմը, որը տեսանելի է մեզ։ Դա կարելի է անել՝ անգլուխ դրոշը որպես false փոխանցելով Puppeteer.launch() մեթոդին:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false});
// Specify statements for Headless Chrome operations
await browser.close();
})();
Puppeteer միջավայրի փոփոխականներ
Puppeteer-ն աշխատում է նախապես սահմանված միջավայրի փոփոխականներով՝ աջակցելու իր գործողություններին: Եթե Puppeteer-ը տեղադրման ընթացքում չգտնի շրջակա միջավայրի փոփոխականները, ապա այս փոփոխականների փոքրատառ տարբերակը կօգտագործվի npm կազմաձևից (կառավարում է NPM Configurations ֆայլը): Շրջակա միջավայրի փոփոխականները հաշվի չեն առնվում Puppeteer-core փաթեթի կողմից: Puppeteer միջավայրի ամենակարևոր փոփոխականներն են.
- PUPPETEER_SKIP_CHROMIUM_BOWNLOADԱյն հրահանգում է չներբեռնել փաթեթավորված Chromium-ը տեղադրման քայլի ընթացքում:
- PUPPETEER_DOWNLOAD_HOSTԱյն վերագրում է URL նախածանցը, որը կարող է օգտագործվել Chromium-ը ներբեռնելու համար:
- PUPPETEER_DOWNLOAD_PATHԱյն վերագրում է ներբեռնման թղթապանակի ուղին: Կանխադրված ուղին – « /.local-chromium/», որտեղ տիկնիկավարի փաթեթային արմատն է:
- HTTP_PROXY, HTTPS_PROXY, NO_PROXY: Այս փոփոխականները սահմանում են պրոքսիի կարգավորումները՝ տեղադրման ընթացքում Chromium-ը ներբեռնելու համար:
- PUPPETEER_CHROMIUM_REVISION՝ Այն սահմանում է Chromium-ի հատուկ տարբերակը, որն օգտագործելու է Puppeteer-ը:
- PUPPETEER_EXECUTABLE_PATH՝ Այն սահմանում է գործարկվող ուղի, որը պետք է օգտագործվի Puppeteer.launch մեթոդում:
- PUPPETEER_PRODUCTԱյն սահմանում է, թե որ զննարկիչը պետք է օգտագործի Puppeteer-ը: Արժեքը պետք է լինի chrome կամ firefox:
Եզրակացություն.
Այս ներածական հոդվածում Puppeteer Tutorial-ում մենք իմացանք Puppeteer-ի ակնարկի և Puppeteer Environment Variables-ի մասին: -ի հաջորդ հոդվածում Տիկնիկավարի ձեռնարկ, մենք կիմանանք Puppeteer Web Scraping-ի և Puppeteer Test Automation-ի ակնարկի մասին: Խնդրում ենք սեղմել այստեղ այցելել տեղեկատու պորտալ այս Puppeteer ձեռնարկի համար: Բացի այդ, խնդրում ենք սեղմել այստեղ սովորել սելեն LambdaGeeks-ից: