Slide 1

Slide 1 text

puppeteer序盤あるある ͋Δ͋Δ-5ʙαʔόʔαΠυΤϯδχΞʙ 7PM ੉ށ හจ

Slide 2

Slide 2 text

ࣗݾ঺հ   ໊લɿ੉ށ හจ  ॴଐɿBOEGBDUPSZגࣜձࣾ  ৬छɿαʔόαΠυΤϯδχΞ  ΞϓϦͷόοΫΤϯυ  ࣾ಺޲͚γεςϜͷߏங  ࠷ۙ࢖͍ͬͯΔݴޠ  /PEFKTɿ೥  1)1ɿϲ݄  (Pݴޠɿϲ݄  WVFKTɿϲ݄ (JU)VCɿDQQ 2JJUBɿDQQ 5XJUUFSɿ!DQQ@

Slide 3

Slide 3 text

QVQQFUFFSͱ͸ʁ   )FBEMFTT$ISPNFΛ࢖༻͢ΔͨΊͷ/PEFKTͷϥΠϒϥϦ  /PEFKT্͔Β$ISPNFϒϥ΢βΛૢ࡞Մೳ  ࣗಈςετɺεΫϨΠϐϯάͳͲʹ࢖༻Մೳ

Slide 4

Slide 4 text

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(); })()

Slide 5

Slide 5 text

QVQQFUFFSͱ͸ʁ 

Slide 6

Slide 6 text

QVQQFUFFSͱ͸ʁ 

Slide 7

Slide 7 text

Α͘٧·Δͱ͜Ζ   BTZOD BXBJU  σʔλड͚౉͠  DPOTPMFMPH

Slide 8

Slide 8 text

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(); })()

Slide 9

Slide 9 text

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(); })()

Slide 10

Slide 10 text

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入れ忘れる

Slide 11

Slide 11 text

BTZOD BXBJU   Τϥʔى͖ͯ΋ݪҼ͕BXBJU࿙Εͩͱؾ෇͖ʹ͍͘

Slide 12

Slide 12 text

Α͘٧·Δͱ͜Ζ   BTZOD BXBJU  σʔλड͚౉͠  DPOTPMFMPH

Slide 13

Slide 13 text

σʔλड͚౉͠  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 使えるのでは?

Slide 14

Slide 14 text

σʔλड͚౉͠ 

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

DPOTPMFMPH 

Slide 17

Slide 17 text



Slide 18

Slide 18 text

 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内で実行される

Slide 19

Slide 19 text



Slide 20

Slide 20 text

 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(); })()

Slide 21

Slide 21 text



Slide 22

Slide 22 text

·ͱΊ   QVQQFUFFSʹ͍ͭͯ؆୯ͳ঺հ  ং൫ͷͭ·ΓͲ͜Ζ  BTZOD BXBJU͚ͭ๨Ε໰୊  FWBMVBUFʹσʔλΛड͚౉͢  FWBMVBUF಺ͰDPOTPMFMPHΛ࢖ͬͯ΋ίϯιʔϧʹ͸ग़ྗ͞ Εͳ͍