Upgrade to Pro — share decks privately, control downloads, hide ads and more …

puppeteer序盤あるある

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for cpp0302 cpp0302
April 23, 2019

 puppeteer序盤あるある

Avatar for cpp0302

cpp0302

April 23, 2019
Tweet

More Decks by cpp0302

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ   ໊લɿ੉ށ හจ  ॴଐɿBOEGBDUPSZגࣜձࣾ  ৬छɿαʔόαΠυΤϯδχΞ 

    ΞϓϦͷόοΫΤϯυ  ࣾ಺޲͚γεςϜͷߏங  ࠷ۙ࢖͍ͬͯΔݴޠ  /PEFKTɿ೥  1)1ɿϲ݄  (Pݴޠɿϲ݄  WVFKTɿϲ݄ (JU)VCɿDQQ 2JJUBɿDQQ 5XJUUFSɿ!DQQ@
  2. QVQQFUFFSͱ͸ʁ  const puppeteer = require('puppeteer'); (async() => { const

    browser = await puppeteer.launch({ args: [ '--no-sandbox’, '--disable-setuid-sandbox’, ], }); const page = await browser.newPage(); await page.goto('https://www.google.com/search?q=puppeteer'); const title = await page.evaluate(() => { return document.querySelector('h3').innerText; }); console.log(title); browser.close(); })()
  3. BTZOD BXBJU   QVQQFUFFSͰͷ$ISPNFૢ࡞͸ඇಉظ  1SPNJTFܗࣜͰฦ͞ΕΔ const puppeteer =

    require('puppeteer'); (async() => { const browser = await puppeteer.launch({ args: [ '--no-sandbox’, '--disable-setuid-sandbox’, ], }); const page = await browser.newPage(); await page.goto('https://www.google.com/search?q=puppeteer'); const title = await page.evaluate(() => { return document.querySelector('h3').innerText; }); console.log(title); browser.close(); })()
  4. BTZOD BXBJU   QVQQFUFFSͰͷ$ISPNFૢ࡞͸ඇಉظ  1SPNJTFܗࣜͰฦ͞ΕΔ const puppeteer =

    require('puppeteer'); (async() => { const browser = await puppeteer.launch({ args: [ '--no-sandbox’, '--disable-setuid-sandbox’, ], }); const page = await browser.newPage(); await page.goto('https://www.google.com/search?q=puppeteer'); const title = await page.evaluate(() => { return document.querySelector('h3').innerText; }); console.log(title); browser.close(); })()
  5. const puppeteer = require('puppeteer'); (async() => { const browser =

    await puppeteer.launch({ args: [ '--no-sandbox’, '--disable-setuid-sandbox’, ], }); const page = browser.newPage(); await page.goto('https://www.google.com/search?q=puppeteer'); const title = await page.evaluate(() => { return document.querySelector('h3').innerText; }); console.log(title); browser.close(); })() BTZOD BXBJU   QVQQFUFFSͰͷ$ISPNFૢ࡞͸ඇಉظ  1SPNJTFܗࣜͰฦ͞ΕΔ await入れ忘れる
  6. σʔλड͚౉͠  const puppeteer = require('puppeteer'); (async() => { const

    browser = await puppeteer.launch({ args: [ '--no-sandbox’, '--disable-setuid-sandbox’, ], }); const page = await browser.newPage(); const url = 'https://www.google.com/search?q=puppeteer’; await page.goto(url); const tagName = 'h3’; const title = await page.evaluate(() => { return document.querySelector(tagName).innerText; }); console.log(title); browser.close(); })() evaluate内でtagName 使えるのでは?
  7. DPOTPMFMPH  const puppeteer = require('puppeteer'); (async() => { const

    browser = await puppeteer.launch({ args: [ '--no-sandbox’, '--disable-setuid-sandbox’, ], }); const page = await browser.newPage(); const url = 'https://www.google.com/search?q=puppeteer’; await page.goto(url); const tagName = 'h3’; const title = await page.evaluate(() => { console.log(‘test’); return document.querySelector(tagName).innerText; }); console.log(title); browser.close(); })() デバッグ用にevaluate内で console.log
  8. 

  9.  const puppeteer = require('puppeteer'); (async() => { const browser

    = await puppeteer.launch({ args: [ '--no-sandbox’, '--disable-setuid-sandbox’, ], }); const page = await browser.newPage(); const url = 'https://www.google.com/search?q=puppeteer’; await page.goto(url); const tagName = 'h3’; const title = await page.evaluate(() => { console.log('test’); return document.querySelector(tagName).innerText; }); console.log(title); browser.close(); })() Chrome内で実行される
  10. 

  11.  const puppeteer = require('puppeteer'); (async() => { const browser

    = await puppeteer.launch({ args: [ '--no-sandbox’, '--disable-setuid-sandbox’, ], }); const page = await browser.newPage(); const url = 'https://www.google.com/search?q=puppeteer’; await page.goto(url); const tagName = 'h3’; const title = await page.evaluate((name) => { return document.querySelector(name).innerText; }, tagName); console.log(title); browser.close(); })()
  12. 

  13. ·ͱΊ   QVQQFUFFSʹ͍ͭͯ؆୯ͳ঺հ  ং൫ͷͭ·ΓͲ͜Ζ  BTZOD BXBJU͚ͭ๨Ε໰୊ 

    FWBMVBUFʹσʔλΛड͚౉͢  FWBMVBUF಺ͰDPOTPMFMPHΛ࢖ͬͯ΋ίϯιʔϧʹ͸ग़ྗ͞ Εͳ͍