የአሻንጉሊት አሳሽ ክፍል ታላቅ የመማሪያ መመሪያ (መማሪያ 8)

Puppeteer የክፍት ምንጭ መስቀለኛ መንገድ js ቤተመፃህፍት ሲሆን በድር አውቶማቲክ እንዲሁም በድር መቧጠጫ መሳሪያ ያገለግላል። ከአሻንጉሊት ጋር መስራት ለመጀመር የጃቫስክሪፕት መሰረታዊ ግንዛቤ እና HTML DOM መዋቅር ያስፈልግዎታል። ይህ የአሻንጉሊት መማሪያ ተከታታይ ከዚህ በታች ባሉት ክፍሎች ተሰራጭቷል ይህም ከአሻንጉሊት ጋር መስራት ለመጀመር ሁሉንም አስፈላጊ ልምዶችን ያስታጥቃችኋል። 

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

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

Tosca አጋዥ #2፡ የአሻንጉሊት አካባቢ ተለዋዋጮች

Tosca አጋዥ #3፡ የአሻንጉሊት ድር መቧጨር እና የአሻንጉሊት ሙከራ አውቶሜሽን አጠቃላይ እይታ

Tosca አጋዥ #4፡ Puppeteer ጫን

Tosca አጋዥ #5፡ ናሙና የአሻንጉሊት ፕሮጀክት

Tosca አጋዥ #6፡ የአሻንጉሊት አውቶሜሽን ሙከራ

Tosca አጋዥ ትምህርት #7፡ የአሻንጉሊት ክፍል

Tosca አጋዥ ትምህርት #8፡ የአሻንጉሊት አሳሽ ክፍል

ቶስካ ማጠናከሪያ ትምህርት #9: የአሻንጉሊት ገጽ ክፍል

በዚህ "የአሻንጉሊት አሳሽ ክፍል" አጋዥ ስልጠና ከPuppeteer web scraping ቴክኒኮች ጋር ለመስራት የሚያስፈልጉትን አስፈላጊ የስም ቦታዎችን፣ ዝግጅቶችን እና ሌሎችን ያቀፈ ስለተጠቀሱት ክፍሎች በጥልቀት እንረዳለን።  

ቡችላ BrowserFetcher ክፍል

Puppeteer BrowserFetcher ክፍል የተለያዩ የአሳሽ ስሪቶችን ለማውረድ እና ለማስተዳደር ይጠቅማል። BrowserFetcher ክፍል የchrome አሳሹን ስሪት በሚገልጽ የክለሳ ሕብረቁምፊ ላይ ይሰራል። የማሻሻያ ቁጥሩ ከ ሊገኝ ይችላል እዚህ. በፋየርፎክስ ጉዳይ ላይ, በስሪት ቁጥሩ ላይ በመመስረት አሳሹን በማታ ማታ ያወርዳል.

ከታች ያለው ምሳሌ እንዴት ማውረድ እንደሚቻል ያሳያል የ chrome አሳሹን ያስጀምሩ BrowserFetcher ክፍልን በመጠቀም።

const browserFetcher = puppeteer.createBrowserFetcher (); const revInfo = አሳሽ ይጠብቁFetcher.download('766890')፤ const browserChrome= ይጠብቁ puppeteer.launch({executablePath፡ revInfo.executablePath})

ከሌላ BrowserFetcher ክፍል ጋር በአንድ ጊዜ መስራት አይቻልም። በተደጋጋሚ ጥቅም ላይ የዋሉ የ BrowserFetcher ክፍል ዘዴዎች በሚቀጥሉት ክፍሎች ተብራርተዋል.

ቡችላ BrowserFetcher ክፍል – ዘዴዎች፡-

ከዚህ በታች ያሉት ዘዴዎች በአሻንጉሊት አሳሽ ፈላጊ ክፍል ውስጥ ይገኛሉ ፣

browserFetcher.can አውርድ(ክለሳ) - በአሳሹ የክለሳ ቁጥር እገዛ ይህ ዘዴ የተገለጸው አሳሽ እንደ ራስጌ ጥያቄ አካል መሆኑን ያረጋግጣል። ዘዴው በተገኝነት ላይ በመመስረት የቦሊያንን እሴት (እውነት ወይም ሐሰት) ይመልሳል።

const boolVar = browserFetcher.canDownload('766890');

browserFetcher.download(ክለሳ[፣ሂደት ጥሪ]) - ይህ ዘዴ የክለሳ ቁጥር ክርክርን በመጠቀም የ chrome አሳሹን ያወርዳል። እዚህ progressCallback ተግባሩን በሁለት ነጋሪ እሴቶች የሚጠራ አማራጭ ነጋሪ እሴት ነው - የወረደ ባይት እና ጠቅላላ ባይት። ይህ ዘዴ የማሻሻያ መረጃውን እንደ ተስፋ ቃል ይመልሳል።

const revInfo = browserFetcher.download('766890');

browserFetcher.host() - አሳሹን ለማውረድ የሚያገለግለውን የአስተናጋጅ ስም ይመልሳል።

const hostName = browserFetcher.host ();

browserFetcher.localRevisions() - በአካባቢያዊ ስርዓት ውስጥ የሚገኙትን ሁሉንም ክለሳዎች ዝርዝር ይመልሳል.

const revList = browserFetcher.localRevisions ();

browserFetcher.platform() - የአስተናጋጁን የመድረክ ስም ይመልሳል ፣ እሱም የትኛውም ማክ ፣ ሊኑክስ ፣ win32 ፣ ወይም win64 ይሆናል።

const platformName = browserFetcher.platform ();

browserFetcher.product() - ክሮም ወይም ፋየርፎክስ የሚሆነውን የአሳሹን ስም ይመልሳል

const productName = browserFetcher.product ();

browserFetcher.remove(ክለሳ) - ይህ ዘዴ ለአሁኑ ምርት/አሳሽ የተገለጸውን ክለሳ ለማስወገድ ይጠቅማል። የተስፋውን ነገር ይመልሳል, ሂደቱ ከተጠናቀቀ በኋላ መፍትሄ ያገኛል.

const revInfo = browserFetcher.remove('766890');

browserFetcher.revisionInfo(ክለሳ) - ማሻሻያ፣ አቃፊ ዱካ፣ executablePath፣ url፣ አካባቢያዊ እና ምርትን ያካተተ የክለሳ መረጃ ላይ ያለ ነገርን ይመልሳል።

const revInfo = browserFetcher.revisionInfo('766890');

ማጣቀሻ: ጠቅ ያድርጉ እዚህ በ BrowserFetcher ክፍል ዘዴዎች ላይ የበለጠ ለማወቅ።

ቡችላ የአሳሽ ክፍል

የአሻንጉሊት ማሰሻ ክፍል የተፈጠረው አሻንጉሊቱ ተጠቅሞ አሳሹን ሲጀምር ወይም ሲያገናኝ ነው። አሻንጉሊት.ማስጀመር or አሻንጉሊት.ማገናኘት ዘዴዎች.

ከዚህ በታች ያለው ምሳሌ የአሳሽ ማመሳከሪያውን በመጠቀም የአሳሹን ክፍል እና ገጽ እንዴት መፍጠር እንደሚቻል ያሳያል።

const puppeteer = ተፈላጊ ('አሻንጉሊት'); (async () => {const browserChrome = በመጠባበቅ ላይ puppeteer.launch()፤ const pageChrome = Browser ጠብቅChrome.newPage() ጠብቅ ገጽChrome.goto('https://www.google.com')፤ አሳሽ ጠብቅChrome.close() );})();

በተደጋጋሚ ጥቅም ላይ የዋሉት የአሳሽ ክፍል ሁነቶች እና ዘዴዎች በሚቀጥለው ክፍል ተብራርተዋል።

ቡችላ የአሳሽ ክፍል - ክስተቶች:

ከዚህ በታች ያሉ ዝግጅቶች በአሳሽ ክፍል ውስጥ ይገኛሉ ፣

  • browser.on ('ግንኙነት ተቋርጧል') - ይህ ክስተት የሚቀሰቀሰው አሳሹ ሲዘጋ / ሲበላሽ ወይም ነው browser.ግንኙነት አቋርጥ ዘዴ ይባላል.
  • browser.on ('ዒላማ ተለውጧል') - ይህ ክስተት የተቀሰቀሰው የዒላማው ዩአርኤል ሲቀየር ነው።
  • browser.on ('ዒላማ የተደረገ') - ይህ ክስተት የሚቀሰቀሰው አዲሱ ገጽ በአዲስ ትር ወይም መስኮት ሲከፈት ነው browser.አዲስ ገጽ or መስኮት. ክፈት.
  • browser.on ('ዒላማ ተደምስሷል') – ይህ ክስተት የሚቀሰቀሰው ኢላማው ሲጠፋ ማለትም ገጹ ሲዘጋ ነው።

ቡችላ የአሳሽ ክፍል - ዘዴዎች:

ከዚህ በታች ያሉት ዘዴዎች በአሳሽ ክፍል ውስጥ ይገኛሉ ፣

  • browser.browser አውዶች() - ሁሉንም የአሳሽ አውዶች ዝርዝር ይመልሳል። አዲስ ለተጀመረ አሳሽ ይህ ዘዴ ነጠላውን BrowserContext ምሳሌ ይመልሳል።
  • browser.ዝግ() - ይህ ዘዴ ሁሉንም ክፍት የክሮሚየም-አሳሽ ገጾችን ለመዝጋት ያገለግላል። 

አሳሽ ይጠብቁ. ዝጋ ();

  • browser.createIncognitoBrowser አውድ() - ማንነትን የማያሳውቅ አሳሽ አውድ ይፈጥራል/ ይመልሳል፣ ይህም ኩኪዎችን ወይም መሸጎጫውን ከሌላ አሳሽ አውድ ጋር በጭራሽ አያጋራም። ከታች ባለው ምሳሌ፣ ድረ-ገጹ(Google) በማያሳውቅ ሁነታ ይከፈታል።

(async () => {
  const chromeBrowser = ጠብቅ puppeteer.launch ();
  // አዲስ ማንነት የማያሳውቅ አሳሽ አውድ ፍጠር።
  const አውድ = ይጠብቁ chromeBrowser.createIncognitoBrowserContext();
  const pageChrome = አውድ ይጠብቁን.newPage();
  ገጽ ይጠብቁChrome.goto('https://www.google.com');
}) ();

  • browser.default አሳሽ አውድ() - ሊጠፋ ወይም ሊዘጋ የማይችል ነባሪ የአሳሽ አውድ ይመልሳል።
  • browser.ግንኙነት አቋርጥ() - አሳሹን ከአሻንጉሊት ጋር ያለውን ግንኙነት ያቋርጣል። ግን በዚህ ጉዳይ ላይ አሳሹ መስራቱን ይቀጥላል።
  • browser.isConnected() - ይህ ዘዴ አሳሹ መገናኘቱን ወይም አለመገናኘቱን ያረጋግጣል። በቼኩ ላይ በመመስረት የቦሊያን እሴቶችን ይመልሳል።

const boolFlag = አሳሽ ይጠብቁ.isConnected ();

  • browser.አዲስ ገጽ() - ይህ ዘዴ አዲስ ገጽ ይፈጥራል እና የገጹን ምሳሌ ይመልሳል።

const ገጽ = አሳሽ ይጠብቁ.newPage ();

  • አሳሽ.ገጾች() - ይህ ዘዴ በአሁኑ ጊዜ በክፍት ሁኔታ ውስጥ ያሉትን ሁሉንም ገጾች ዝርዝር ይመልሳል።

const pageList = አሳሽ ይጠብቁ ገጾች ();

  • browser.process() - ይህ ዘዴ የተፈጠረውን የአሳሽ ሂደት ይመልሳል. አሳሹን በመጠቀም ከተፈጠረ አሳሽ.አገናኝ ዘዴ, እና ባዶ እሴት ይመልሳል.
  • browser. target() - ይህ ዘዴ ከአሳሹ ጋር የተያያዘውን ዒላማ ይመልሳል.

const ዒላማ = አሳሽ ይጠብቁ.target ();

  • browser. targets() - በአሳሹ ውስጥ ያሉትን ሁሉንም ንቁ ኢላማዎች ዝርዝር ይመልሳል።

const targetList = አሳሽ ይጠብቁ.targets ();

  • browser.userAgent () - ስለ አሳሹ የመጀመሪያ ወኪል የገባውን ነገር ይመልሳል።
  • browser.ስሪት() - የአሳሹን ስሪት በ'HeadlessChrome/xx ቅርጸት ይመልሳል.x.xxxx.x' ጭንቅላት ለሌለው chrome እና 'Chrome/xx.x.xxxx.x' ጭንቅላት ለሌላቸው ክሮም። ቅርጸቱ ወደፊት በሚለቀቅበት ጊዜ ሊለወጥ ይችላል።
  • browser.waitForTarget (ተገመተው[፣ አማራጮች]) - በሁሉም የአሳሽ አውድ ውስጥ ፈልጎ ኢላማውን ይጠብቃል።

ገጽ ይጠብቁChrome.evaluate(() => መስኮት.ክፍት('https://lambdageeks.com/'));
const newWindowTarget = አሳሽ ይጠብቁ.waitForTarget(ዒላማ => target.url() === 'https://lambdageeks.com/');

  • browser.wsEndpoint() - የአሳሹን የድር ሶኬት ዩአርኤል ይመልሳል።

const wsUrl = አሳሽ ይጠብቁ.wsEndPoint();

ማጣቀሻ: ጠቅ ያድርጉ እዚህ በአሳሽ ክፍል ክስተቶች እና ዘዴዎች ላይ የበለጠ ለማወቅ።

ቡችላ የአሳሽ አውድ ክፍል

የ BrowserContext ክፍል ብዙ የአሳሽ አጋጣሚዎችን ለመስራት ይረዳል። የአሳሽ ምሳሌን ካስጀመርክ በኋላ፣ በነባሪ፣ ነጠላ BrowserContext ጥቅም ላይ ይውላል። የ አሳሽChromeአዲስ ገጽ() ዘዴ በነባሪ BrowserContext ክፍል ነገር ውስጥ ገጽ ይፈጥራል። አንድ ድረ-ገጽ ሌላ ገጽ ከጠራ፣ አዲሱ ገጽ የወላጅ ገጹ የአሳሽ አውድ መሆን አለበት። እዚህ, አዲሱ ገጽ በመጠቀም ሊፈጠር ይችላል የ መስኮት.ክፍት() ዘዴ. 

ከታች ባለው ምሳሌ፣ ፑፔተር የአሳሽ አውድ በ 'ማንነትን በማያሳውቅ' ሁነታ የመፍጠር ችሎታ አለው። የ'ማንነትን የማያሳውቅ' አሳሽ አውድ በማከማቻው ውስጥ ምንም አይነት መረጃ አይጽፍም።

// ማንነት የማያሳውቅ አሳሽ አውድ መፍጠር const contextIncognito = አሳሹን ይጠብቁChrome.createIncognitoBrowserContext(); // በአሳሹ አውድ በኩል አዲስ ገጽ መፍጠር። const pageChrome = አውድ ይጠብቁIncognito.newገጽ(); ገጽ ይጠብቁChrome.goto('https://www.google.com'); // ከተጠቀሙ በኋላ አውድ ዝጋ አውድ ጠብቅIncognito.close ();

በተደጋጋሚ ጥቅም ላይ የዋሉት የ BrowserContext ክፍል ሁነቶች እና ዘዴዎች በሚቀጥለው ክፍል ተብራርተዋል።

ቡችላ የአሳሽ አውድ ክፍል - ክስተቶች

ከዚህ በታች ያሉ ክስተቶች በአሳሽ አውድ ክፍል ውስጥ ይገኛሉ፣

  • browserContext.on(የተቀየረ) - ይህ ክስተት የሚቀሰቀሰው በአሳሹ አውድ ውስጥ ያለው የዒላማው ዩአርኤል ሲቀየር ነው።
  • browserContext.on(ዒላማ የተደረገ) - ይህ ክስተት በአሳሽ አውድ ውስጥ ከተፈጠረ በኋላ የተቀሰቀሰ ነው። ዘዴዎች መስኮት. ክፈት ና browserContext.newገጽ ለዚህ ክስተት ተጠያቂዎች ናቸው.
  • browserContext.on('ታርጌት ተደመሰሰ') - ይህ ክስተት የሚቀሰቀሰው ዒላማው በአሳሹ አውድ ውስጥ ሲጠፋ ነው።

ቡችላ Browser የአውድ ክፍል – ዘዴዎች፡-

ከዚህ በታች ያሉት ዘዴዎች በአሳሽ አውድ ክፍል ውስጥ ይገኛሉ ፣

  • browserContext.browser() - ይህ ዘዴ በአሳሹ አውድ ውስጥ የሚገኘውን የአሳሹን ነገር ይመልሳል።
  • browserContext.clear Permission ይሻራል() - ይህ ዘዴ ሁሉንም ፈቃዶች ከአሳሹ አውድ ያስወግዳል። ከዚህ በታች ያለው ምሳሌ ይህንን ዘዴ እንዴት እንደሚጠቀሙ ያሳያል- 

const browserContext = browser.defaultBrowserContext();
browserContext.override Permissions('https://www.google.com'፣ ['ክሊፕቦርድ-ማንበብ']);
browserContext.clearPermissionOverrides();

  • browserContext.close() - ይህ ዘዴ የአሳሹን አውድ ለመዝጋት ወይም ለማጥፋት ያገለግላል. በአሳሹ አውድ ውስጥ የሚገኙ ሁሉም አሳሾች ይዘጋሉ።

browserContext.close ();

  • browserContext.isIncognito() - ይህ ዘዴ አሳሹ የተፈጠረው በ 'ማንነት የማያሳውቅ' ሁነታ መሆኑን ወይም አለመሆኑን ለማረጋገጥ ይጠቅማል። በአሳሹ ሁነታ ላይ በመመስረት የቦሊያን እሴት ይመልሳል (እውነት - ማንነትን የማያሳውቅ ሁነታ ወይም ሐሰት - ማንነትን የማያሳውቅ ሁነታ)። በነባሪ፣ ማንኛውም አሳሽ የሚጠራው 'ማንነት የማያሳውቅ' ሁነታ ነው።

const boolIsIncognito = browserContext.isIncognito();

  • browserContext.newገጽ() - ይህ ዘዴ በተመሳሳዩ የአሳሽ አውድ ውስጥ አዲስ ገጽ ለመፍጠር ይጠቅማል።

browserContext.newPage ();

  • browserContext.override Permissions(መነሻ፣ ፍቃድ) - ይህ ዘዴ የተገለጸውን የመነሻ ፍቃድ ለመስጠት ይጠቅማል ማለትም ኢላማ ዩአርኤል። ለመስጠት የተለያዩ ፈቃዶች-
  • 'ጂኦግራፊያዊ አካባቢ'
  • 'midi-sysex' (ስርአት-አግላይ ሚዲ)
  • 'ሚዲ'
  • 'ግፋ'
  • 'ካሜራ'
  • 'ማሳወቂያዎች'
  • 'ማይክሮፎን'
  • 'የአካባቢ-ብርሃን ዳሳሽ'
  • 'የፍጥነት መለኪያ'
  • 'ዳራ-አመሳስል'
  • 'ጋይሮስኮፕ'
  • "ተደራሽነት - ክስተቶች"
  • 'ክሊፕቦርድ-ማንበብ'
  • 'ማግኔቶሜትር'
  • 'ክሊፕቦርድ-ጻፍ'
  • 'ክፍያ ተቆጣጣሪ'

ከዚህ በታች ያለው ምሳሌ እንዴት ፈቃድ መስጠት እንደሚቻል ያሳያል-

const browserContext = browser.defaultBrowserContext();
አሳሹን ይጠብቁContext.overridePermissions('https://www.google.com'፣ ['ጂኦሎኬሽን']));

  • browserContext.pages() - ይህ ዘዴ በአሳሹ አውድ ውስጥ የሚገኙትን ሁሉንም ክፍት ገጾች ዝርዝር ይመልሳል። ማንኛውም የማይታይ ገጽ እዚህ አይዘረዘርም።

const openPageList = browserContext.pages();

  • browserContext.targets() - ይህ ዘዴ በአሳሹ አውድ ውስጥ የሚገኙትን ሁሉንም ንቁ ኢላማዎች ዝርዝር ይመልሳል። ማንኛውም የማይታይ ገጽ እዚህ አይዘረዘርም።

const activeTargetList = browserContext.targets ();

  • browserContext.waitForTarget(ተገመተ[፣ አማራጮች]) - ይህ ዘዴ ዒላማው ብቅ እስኪል እና የታለመውን ነገር እስኪመልስ ድረስ ለመጠበቅ ያገለግላል. የመከራከሪያ ነጥብ፣ 'ተሳቢ' በመሠረቱ ለእያንዳንዱ ኢላማዎች የተግባር ጥሪ ነው። እንዲሁም፣ እንደ አማራጭ፣ እንደ ሁለተኛ ነጋሪ እሴት ያሉ አንዳንድ የውቅር እሴቶችን ማለፍ እንችላለን።
ገጽ ይጠብቁChrome.evaluate(() => መስኮት.ክፍት('https://www.google.com/')); const newWindowTarget = አሳሹን ይጠብቁContext.waitForTarget(ዒላማ => target.url() === 'https://www.google.com/');

ማጣቀሻ: ጠቅ ያድርጉ እዚህ በ BrowserContext ክፍል ክስተቶች እና ዘዴዎች ላይ የበለጠ ለማንበብ።

ማጠቃለያ:

በዚህ “የአሻንጉሊት አሳሽ ክፍል” አጋዥ ስልጠና ውስጥ፣ አስፈላጊ የሆኑትን የስም ቦታዎች(ካለ)፣ ሁነቶችን (ካለ) እና በ Puppeteer ድረ-ገጽ የመቧጨር ቴክኒኮችን የሚያጠቃልለውን የአሳሽ ፋቸር ክፍልን፣ BrowserContext ክፍልን እና የአሳሽ ክፍልን አብራርተናል። ምሳሌዎች. በሚቀጥለው መጣጥፍ ገጽ፣ ፍሬም እና የንግግር ክፍልን እናብራራለን።

አስተያየት ውጣ

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

ወደ ላይ ሸብልል