Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
impression of google chrome headless
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
teitei_tk
May 31, 2017
Programming
0
1.9k
impression of google chrome headless
teitei_tk
May 31, 2017
Tweet
Share
More Decks by teitei_tk
See All by teitei_tk
Claude Code × WebLLM:AI駆動開発で作る次世代PDF要約ツール
teitei
0
110
dive to Ruby on Rails module autoloading
teitei
1
4.7k
貴方はOmniAuth::AuthHashを知っていますか?
teitei
0
8.5k
myhome-progress
teitei
0
83
recommend parallel career
teitei
0
1.1k
嫁に怒られずにGoを書く技術
teitei
0
2.6k
AWS parking lot shutter hack project
teitei
2
4.1k
Other Decks in Programming
See All in Programming
CSC307 Lecture 04
javiergs
PRO
0
660
AI & Enginnering
codelynx
0
110
並行開発のためのコードレビュー
miyukiw
0
280
2026年 エンジニアリング自己学習法
yumechi
0
140
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
590
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
190
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
140
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
Apache Iceberg V3 and migration to V3
tomtanaka
0
160
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.3k
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
62
Believing is Seeing
oripsolob
1
56
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
It's Worth the Effort
3n
188
29k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
190
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
940
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
730
Transcript
ChromeHeadless modeΛ৮ͬͨॴײ 2017/05/31 @teitei_tk
ࣗݾհ • @teitei_tk • ࠷ۙϋΠϥϧԦࠃΛฏʹ͢ΔͨΊʹؤுͬ ͯ·͢ɻ
ຊ
ͷલʹ
Chrome Headless ͱʁ
͍ΘΏΔHeadlessϒϥβ • ޡղΛঝͰݴ͑ɺGUIͷແ͍Chromeɻ • GUIͳ͍͕ɺ෦తʹϖʔδͷϨϯμϦϯά ͔ΒJavaScriptͷ࣮ߦɺϒϥβͬΆ͍͜ͱ͕ Ͱ͖Δ
Ͳ͏͍͏༻్͕͋Δͷ • WebApplicationͷςετ • ͍ΘΏΔE2E • WebPageͷΩϟϓνϟࡱӨ • WebαΠτͷεΫϨΠϐϯά •
DDoS߈ܸ
ͳͥ Chrome Headless͔
PhantomJSͷࢮ
PhantomJSͱ • HeadlessϒϥβͷҰͭ • ͓ͦΒ͘Ұ൪ਓؾ͕͋ΔͷͰͳ͍ͩΖ͏͔ • ͔͠͠ɺ2017/05/30ݱࡏͰissue1848ɺPull Request58ͱ։ൃఀ͍ͯ͠Δ • https://github.com/ariya/phantomjs/
PhantomJS is Dead • ͦͯ͠།Ұͷϝϯςφ͕ࠓޙΈͳChrome Headlessʹ Γ͑ΔͩΖ͏ͱϝϯςφΛࣙΛએݴɻ • https://groups.google.com/d/msg/phantomjs/9aI5d- LDuNE/5Z3SMZrqAQAJ
• ࠓޙͷߏ͋Δͷ͔ɺphantomiumͱ͍͏PhantomJS + ChromeHeadlessͷ୯ޠ͕Έ߹Θͬͨ͞ϨϙδτϦ͋ Δ • https://github.com/Vitallium/phantomium
ͱ͍͏ͷ͕എܠ
Կނ Chrome Headless͔
• Google͕։ൃ͍ͯ͠Δͱ͍͏҆৺ײ • Webඪ४ͷ४ڌ͕ૣ͍ͷͰɺ͍ͪૣ͘ػೳ͕͑Δɻ • ֤छAPIͷར༻͕Մೳ • ServiceWorker • IndexedDB
• Memory Heap Profiler • etc
ͱ͍͏Θ͚Ͱ ৮ͬͯΈͨ
Setup • Chrome Ver59Ҏ͕߱ඞਢ • ݱࡏ(2017/05/30)ͷChromeͷStable Version58 • Chrome CanaryΛ͏ͱྑͦ͞͏
؆୯ͳͷͳΒ͙͢ग़དྷΔ • ShellͰ͙͢ग़དྷΔ • DOMͷग़ྗ • PDF࡞ • Ωϟϓνϟͷऔಘ •
eg. $ chrome --headless --disable-gpu --dump- dom https://www.chromestatus.com/
దʹWrapperॻ͍ͨ • ΩϟϓνϟͷࡱӨ • https://wobfnz0lh2.execute-api.us- west-2.amazonaws.com/dev/chrome?url=https:// google.co.jp • PDFͷੜ •
https://wobfnz0lh2.execute-api.us- west-2.amazonaws.com/dev/pdf?url=https:// google.com/
• ݴޠɿNode.js • ओʹ༻ͨ͠ϥΠϒϥϦ • chrome-remote-interface • ChromeͷAPIΛୟ͘Node.jsϥΠϒϥϦ • lighthouse
• ChromeΛىಈ͢Δϔϧύʔ͕هࡌ͞Ε͍ͯΔ ϥΠϒϥϦ
ॴײ • ҆ఆԽ·Ͱ͏গֻ͔͠Γͦ͏ɻ • Ṗͷ--disable-gpu Option • API͕·ͩམͪண͍͍ͯͳ͍ͷͰຊ൪ೖ·ͩආ͚ͨ΄͏ ͕ྑͦ͞͏ •
ͱ͍͑PhantomJSͷޙ佂ʹ࠲Γͦ͏ɻ • ಈ͓͖ͬͯ·͢ɻ • Կ͔͋ͬͨΒهࣄͰॻ͍ͯڞ༗͠·͢ɻ