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
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
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
130
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
390
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
580
Claude起点の仕様駆動開発
tanakaseiya
0
310
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
530
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
2
330
LLM機能を自作して分かるSnowflake Cortex AIの強み
nayuts
0
230
OpenClawでAzure DevOpsのWiki更新を自動化する - クラウドAIだけでは届かない場所へ
yutakaosada
0
140
spanner-autoscalerに学ぶ CRD設計パターン 〜自動化と緊急時対応を両立する Kubernetesコントローラーの作り方〜
tkuchiki
0
230
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
470
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
310
行動するAIのためのオントロジー | DevRev — Encraft #26.pdf
dvrv_tknrszk
2
680
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
4
520
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
960
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
310
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.1k
Accessibility Awareness
sabderemane
1
230
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
550
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.9k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Documentation Writing (for coders)
carmenintech
77
5.6k
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Λͬͯίϯιʔϧʹग़ྗ͞ Εͳ͍