የአሻንጉሊት ማጠናከሪያ ትምህርት - የአሻንጉሊት ማጠናከሪያ ትምህርት 1 እና 2 በጣም ጥሩ የመማሪያ መመሪያ

አሻንጉሊቱ በ node-js ቤተ-መጽሐፍት የተገነባ ክፍት ምንጭ የጃቫ ማዕቀፍ ነው። አሻንጉሊቱ እንደ ድር መጥረጊያ መሳሪያ የመስራት ችሎታ አለው። እንደ ሴሊኒየም ድር ሾፌር ለድር ላይ ለተመሰረቱ አፕሊኬሽኖችም እንደ የሙከራ አውቶሜሽን ሊያገለግል ይችላል። ለሙከራ አውቶማቲክ የፑፔተር ተወዳጅነት በፍጥነት እየጨመረ ነው። በአሻንጉሊት መማሪያ ውስጥ ለመራመድ ቅድመ-ሁኔታዎች የትእዛዝ መስመር ፣ጃቫስክሪፕት ፣ OOPs ጽንሰ-ሀሳብ እና HTML DOM መዋቅር መሰረታዊ እውቀት ናቸው። የተሟላው የአሻንጉሊት ትምህርት ከዚህ በታች ባለው የይዘት ሠንጠረዥ ውስጥ በተጠቀሱት ርዕሶች ተከፋፍሏል. 

የአሻንጉሊት ትምህርት

Tosca አጋዥ ትምህርት #1፡ የአሻንጉሊቶች አጠቃላይ እይታ

ቶስካ ማጠናከሪያ ትምህርት #2: የአሻንጉሊት አካባቢ ተለዋዋጮች

ቶስካ ማጠናከሪያ ትምህርት #3: የአሻንጉሊት ድር መቧጨር እና የአሻንጉሊት ሙከራ አውቶሜሽን አጠቃላይ እይታ

ቶስካ ማጠናከሪያ ትምህርት #4: Puppeteer ጫን 

በዚህ ጽሑፍ ውስጥ የ የአሻንጉሊት ትምህርትስለ የአሻንጉሊት አጠቃላይ እይታ እና የአሻንጉሊት አካባቢ ተለዋዋጮችን እናብራራለን። 

የአሻንጉሊቶች አጠቃላይ እይታ

አሻንጉሊቱ በ node-js ቤተ-መጽሐፍት የተገነባ ክፍት ምንጭ የጃቫ ማዕቀፍ ነው። Puppeteer በከፍተኛ ደረጃ የመተግበሪያ በይነገጽ(ኤፒአይ) በመታገዝ የChrome አሳሽን በዴቭቶል ፕሮቶኮል ላይ መቆጣጠር ይችላል። አሻንጉሊቱ ሁለቱንም ጭንቅላት እና ጭንቅላት የሌላቸው chrome አሳሾችን መቆጣጠር ይችላል። 

የአሻንጉሊት መዋቅር በGoogle አስተዋወቀ። እንደ ተግባራዊነቱ፣ አዲስ ጽንሰ-ሐሳብ አይደለም። ግን ስራውን ቀላል ያደርገዋል. በመሠረቱ፣ የተግባር ዝርዝርን በተጨናነቀ ጥቅል ያጠቃልላል።

የአሻንጉሊት ትምህርት - አሻንጉሊት
የአሻንጉሊት ትምህርት - አሻንጉሊት

አሻንጉሊቶች እንዴት ይሠራሉ?

  • Puppeteer መስቀለኛ JS ላይብረሪ ይጠቀማል።
  • መስቀለኛ መንገድ JS ባለከፍተኛ ደረጃ ኤ ፒ አይዎችን ለመጠቀም ይፈቅዳል።
  • ኤፒአይዎቹ የChrome አሳሹን በdevtool ፕሮቶኮል ላይ የመቆጣጠር ችሎታ አላቸው።
  • በነባሪ፣ Puppeteer ጭንቅላት ከሌላቸው የChrome አሳሾች ጋር ይሰራል፣ነገር ግን ከዋና የChrome አሳሾች ጋር እንዲሁም ነባሪውን ውቅረት በመቀየር መስተጋብር መፍጠር ይችላል።

Chrome DevTools ፕሮቶኮል:

የChrome DevTools ፕሮቶኮልን በመጠቀም እንደ ፑፔተር ያሉ መሳሪያዎች ብልጭ ድርግም የሚሉ እንደ Chromium፣ Chrome፣ ወዘተ ያሉ አሳሾችን መሳሪያ ማድረግ፣ መመርመር፣ ማረም እና መገለጫ ማድረግ ይችላሉ።

እዚህ የአሳሹ መሳሪያ እንደ DOM, Debugger, Network, ወዘተ ባሉ በርካታ ጎራዎች የተከፋፈለ ነው.እያንዳንዱ ጎራ ሁሉንም የተደገፉ ትዕዛዞችን እና የተፈጠሩትን ክስተቶች ያብራራል.

የአሻንጉሊት ባህሪያት:

  • በ Chrome አሳሽ በኩል በእጅ የሚሰሩ ሂደቶች በራስ ሰር ሊደረጉ ይችላሉ።
  • የማንኛውም ድረ-ገጽ ቅጽበታዊ ገጽ እይታን ማንሳት እና የቅጽበታዊ ገጽ እይታውን ምስል ወይም ፒዲኤፍ ፋይል ያመነጫል።
  • ነጠላ ገፅ አፕሊኬሽን ፑፕቴርን በመጠቀም ከአገልጋይ ጎን አተረጓጎም ሊዳብር ይችላል።
  • የድረ-ገጽ ማስረከቢያን፣ የዩአይ ሙከራን፣ የቁልፍ ሰሌዳ ግብአትን ወዘተ በፍተሻ ነጥቦችን በራስ ሰር መስራት ይችላል።
  • በ Chrome አሳሽ ላይ ተጨማሪ ቁጥጥር ይሰጣል.
  • ነባሪው ጭንቅላት አልባ ሁነታ በጣም ፈጣን ነው።
  • ድር መቧጨርን ይደግፋል።
  • የChrome አፈጻጸም መመርመሪያ መሳሪያዎችን በመጠቀም የመስጠት እና የመጫን ጊዜን የመለካት ችሎታ።

አሻንጉሊት vs አሻንጉሊት-ኮር፡

ከሁለት ጥቅሎች በታች ያለው የፑፔተር ስሪት v1.7.0 በእያንዳንዱ እትም ውስጥ ይገኛሉ -

  • puppeteer-ኮር ጥቅል
  • የአሻንጉሊት ጥቅል

የአሻንጉሊት-ኮር ጥቅል

አሻንጉሊት-ኮር የDevTools ፕሮቶኮልን የሚደግፍ ማንኛውንም ተግባር ማከናወን የሚችል የጃቫ-ቤዝ ኖድ ቤተ-መጽሐፍት ነው። Puppeteer-core በመጫን ጊዜ Chromiumን አያወርድም። እንደ ቤተ-መጽሐፍት፣ Puppeteer-core ሙሉ በሙሉ የሚነዳው በፕሮግራማዊ በይነገጽ ነው። እንዲሁም የPuppeteer-core ባህሪያት በሁሉም PUPPETEER_* env ተለዋዋጮች ሊበጁ አይችሉም። Puppeteer-core ን ለመጫን መሰረታዊ ትእዛዝ - 

npm install puppeteer-core
# or "yarn add puppeteer-core"

የአሻንጉሊት-ኮርን በሚጠቀሙበት ጊዜ መግለጫዎችን ያካትቱ ከዚህ በታች እንደሚከተለው ይሆናሉ-

const puppeteer = require('puppeteer-core')

Puppeteer-Core መቼ መጠቀም እንደሚቻል፡-

  • ተጨማሪ ክሮምየም ማውረድ በማይፈለግበት በDevTools ፕሮቶኮል ላይ ያለውን የChrome አሳሽ ለመጠቀም የአሻንጉሊት ፕሮጄክትን ለማዘጋጀት።
  • በDevTools ፕሮቶኮል ላይ ሌላ የመጨረሻ ተጠቃሚ ምርት ወይም ቤተ-መጽሐፍት ለማዳበር። ለምሳሌ፣ አንድ ፕሮጀክት puppeteer-coreን በመጠቀም ቅጽበታዊ ገጽ እይታን ጀነሬተር ሊገነባ እና ማከማቻን ለመቆጠብ ከChromium ይልቅ headless_shell የሚያወርድ ብጁ setup.js ስክሪፕት ሊጽፍ ይችላል።

የአሻንጉሊት ጥቅል;

ቡችላ ለChrome ወይም Chromium አሳሽ አውቶሜሽን የተሟላ ምርት ነው። በመጫን ጊዜ የቅርብ ጊዜውን የChromium ስሪት ያወርዳል፣ እና ከዚያ በኋላ፣ በአሻንጉሊት-ኮር ይነዳ ነበር። እንደ ዋና ተጠቃሚ ምርት፣ Puppeteer ባህሪውን ለማበጀት ሁሉንም የPUPPETEER_* env ተለዋዋጮችን ይደግፋል። Puppeteer ን ለመጫን መሰረታዊ ትእዛዝ - 

npm install puppeteer
# or "yarn add puppeteer"

Puppeteer ሲጠቀሙ፣ ከዚህ በታች የሚመስሉ መግለጫዎችን ያካትቱ -

puppeteer = require(‘puppeteer’)

በአሻንጉሊት እና በአሻንጉሊት-ኮር መካከል ያለው ልዩነት

  • Puppeteer-core በመጫን ጊዜ የChromium አሳሹን በራስ-ሰር አያወርድም።
  • Puppeteer-core ሁሉንም የPUPPETEER_* env ተለዋዋጮችን ግምት ውስጥ አያስገባም።
  • በአብዛኛዎቹ ፕሮጀክቶች ውስጥ የፑፔተር ምርት ጥቅል እየተጠቀምን ነው።

ጭንቅላት የሌለው Chrome፡

ጭንቅላት የሌለው chrome ማለት አሻንጉሊቱ ከchrome አሳሽ ጋር እንደ የጀርባ አፕሊኬሽን ይገናኛል ማለት ነው፣ ይህ ማለት የchrome UI በስክሪኑ ላይ አይታይም። በነባሪ፣ Puppeteer መተግበሪያውን እንደ ጭንቅላት የሌለው ክሮም ያስጀምረዋል። ራስ የሌለው Chromeን ለማስጀመር የኮድ ናሙና - 

በዚህ ምሳሌ፣ ጭንቅላት የሌለውን 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:

ራስጌ chrome ማለት አሻንጉሊቱ ከክሮም አሳሽ ጋር እየተገናኘ ነው ለዚህም ክሮም ዩአይ በማያ ገጹ ላይ ይታያል። በነባሪ፣ ፑፔተር መተግበሪያውን እንደ ጭንቅላት የሌለው ክሮም ያስጀምረዋል። Headful Chromeን ለማስጀመር የኮድ ናሙና - 

በዚህ ምሳሌ, ለእኛ የሚታየውን chrome እንከፍተዋለን. ጭንቅላት የሌለውን ባንዲራ በ Puppeteer.launch () ዘዴ ላይ እንደ ውሸት በማለፍ ማድረግ ይቻላል.

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ headless: false});
  // Specify statements for Headless Chrome operations  
  await browser.close();
})();

የአሻንጉሊት አካባቢ ተለዋዋጮች

አሻንጉሊቱ ሥራውን ለመደገፍ አስቀድሞ ከተገለጹ የአካባቢ ተለዋዋጮች ጋር ይሰራል። Puppeteer በሚጫኑበት ጊዜ የአካባቢ ተለዋዋጮችን ካላገኘ፣ የእነዚህ ተለዋዋጮች ትንሽ ፊደል ከ npm ውቅር (የNPM Configurations ፋይልን ያስተዳድራል) ጥቅም ላይ ይውላል። የአካባቢ ተለዋዋጮች በፑፔተር-ኮር ጥቅል አይታሰቡም። በጣም አስፈላጊው የአሻንጉሊት አካባቢ ተለዋዋጮች- 

  • PUPPETEER_SKIP_CHROMIUM_ማውረዱ፦ በመጫኛ ደረጃ የታሸገ Chromiumን እንዳታወርድ መመሪያ ይሰጣል።
  • PUPPETEER_ማውረዱ_HOSTChromiumን ለማውረድ የሚያገለግል የዩአርኤል ቅድመ ቅጥያ ይተካል። 
  • PUPPETEER_ማውረዱ_PATH: የአውርድ አቃፊውን መንገድ ይተካል። ነባሪው መንገድ - " /.አካባቢያዊ-ክሮሚየም/" የት የአሻንጉሊት ፓኬጅ ሥር ነው.
  • HTTP_PROXY፣ HTTPS_PROXY፣ NO_PROXY፡- እነዚህ ተለዋዋጮች በመጫን ጊዜ Chromiumን ለማውረድ የተኪ ቅንብሮችን ይገልጻሉ።
  • PUPPETEER_CHROMIUM_REVISION፡ በአሻንጉሊት የሚጠቀመውን የተወሰነ የChromium ስሪት ይገልጻል።
  • PUPPETEER_EXECUTABLE_PATH፡ በ Puppeteer.launch ዘዴ ውስጥ ጥቅም ላይ የሚውል ተፈጻሚ ዱካ ይገልጻል። 
  • PUPPETEER_PRODUCTበፑፔተር የትኛውን አሳሽ መጠቀም እንዳለበት ይገልጻል። እሴቱ ክሮም ወይም ፋየርፎክስ መሆን አለበት። 

ማጠቃለያ:

በዚህ የመግቢያ መጣጥፍ በአሻንጉሊት ማጠናከሪያ ትምህርት ፣ ስለ አሻንጉሊት አጠቃላይ እይታ እና የአሻንጉሊት አካባቢ ተለዋዋጮች ተምረናል። በሚቀጥለው ርዕስ ውስጥ የአሻንጉሊት ትምህርት, ስለ Puppeteer Web Scraping እና Puppeteer Test Automation አጠቃላይ እይታ እንማራለን. እባክዎን ጠቅ ያድርጉ እዚህ የዚህን የአሻንጉሊት ማጠናከሪያ ትምህርት ማመሳከሪያውን ለመጎብኘት. እንዲሁም፣ እባክዎን ጠቅ ያድርጉ እዚህ ከላምብዳጊክስ ሴሊኒየምን ለመማር።

አስተያየት ውጣ

የእርስዎ ኢሜይል አድራሻ ሊታተም አይችልም. የሚያስፈልጉ መስኮች ምልክት የተደረገባቸው ናቸው, *

ወደ ላይ ሸብልል