Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
puppeteer序盤あるある
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
cpp0302
April 23, 2019
Technology
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
puppeteer序盤あるある
cpp0302
April 23, 2019
More Decks by cpp0302
See All by cpp0302
Goサーバサイドあるある
cpp0302
1
610
Other Decks in Technology
See All in Technology
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
190
Webとヘルスデータ
yukukotani
1
370
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
350
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
2.6k
Tab5をRubyで動くパソコンにする
kishima
2
310
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
4
3.9k
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
140
2026-09-09 【sigma_ucj#1】Sigma を IaC 管理したい! / IaC for Sigma
civitaspo
0
110
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
1
260
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
300
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
260
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
660
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
780
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Producing Creativity
orderedlist
PRO
348
41k
What's in a price? How to price your products and services
michaelherold
247
13k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
470
Chasing Engaging Ingredients in Design
codingconduct
0
300
The agentic SEO stack - context over prompts
schlessera
0
920
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
440
Six Lessons from altMBA
skipperchong
29
4.5k
Design in an AI World
tapps
1
310
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Transcript
puppeteer序盤あるある ͋Δ͋Δ-5ʙαʔόʔαΠυΤϯδχΞʙ 7PM ށ හจ
ࣗݾհ ໊લɿށ හจ ॴଐɿBOEGBDUPSZגࣜձࣾ ৬छɿαʔόαΠυΤϯδχΞ
ΞϓϦͷόοΫΤϯυ ͚ࣾγεςϜͷߏங ࠷͍ۙͬͯΔݴޠ /PEFKTɿ 1)1ɿϲ݄ (Pݴޠɿϲ݄ WVFKTɿϲ݄ (JU)VCɿDQQ 2JJUBɿDQQ 5XJUUFSɿ!DQQ@
QVQQFUFFSͱʁ )FBEMFTT$ISPNFΛ༻͢ΔͨΊͷ/PEFKTͷϥΠϒϥϦ /PEFKT্͔Β$ISPNFϒϥβΛૢ࡞Մೳ ࣗಈςετɺεΫϨΠϐϯάͳͲʹ༻Մೳ
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(); })()
QVQQFUFFSͱʁ
QVQQFUFFSͱʁ
Α͘٧·Δͱ͜Ζ BTZOD BXBJU σʔλड͚͠ DPOTPMFMPH
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(); })()
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(); })()
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入れ忘れる
BTZOD BXBJU Τϥʔى͖ͯݪҼ͕BXBJU࿙Εͩͱؾ͖ʹ͍͘
Α͘٧·Δͱ͜Ζ BTZOD BXBJU σʔλड͚͠ 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(() => { return document.querySelector(tagName).innerText; }); console.log(title); browser.close(); })() evaluate内でtagName 使えるのでは?
σʔλड͚͠
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
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(); })() Chrome内で実行される
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(); })()
·ͱΊ QVQQFUFFSʹ͍ͭͯ؆୯ͳհ ং൫ͷͭ·ΓͲ͜Ζ BTZOD BXBJU͚ͭΕ
FWBMVBUFʹσʔλΛड͚͢ FWBMVBUFͰDPOTPMFMPHΛͬͯίϯιʔϧʹग़ྗ͞ Εͳ͍