【へっどれすぶらうざ】

ヘッドレスブラウザ とは?

💡 「画面なし」で動くブラウザ
📌 このページのポイント
ヘッドレスブラウザ:UIなしで動くブラウザ 通常のブラウザ https://example.com 画面表示あり(人間が操作) ヘッドレスブラウザ // 自動テスト page.goto(url) page.click('#btn') page.screenshot() // 画面表示なし! 画面なし(プログラムが操作) 自動テスト E2Eテスト実行 スクレイピング データ収集 スクリーンショット PDF生成・OGP画像
ヘッドレスブラウザのイメージ
ひよこ ひよこ

なぜ画面なしのブラウザが必要なの?

ペンギン先生 ペンギン先生

テスト自動化をCIサーバーで実行する場合、ディスプレイがないからGUIブラウザは起動できない。ヘッドレスモードならサーバー上でもブラウザ操作が可能。また、画面描画のオーバーヘッドがないから通常モードより高速に動作するメリットもあるよ

ひよこ ひよこ

PlaywrightとPuppeteerの違いは?

ペンギン先生 ペンギン先生

PuppeteerはGoogleが開発したChromium専用ツール。PlaywrightMicrosoftが開発した多ブラウザ対応(Chromium、Firefox、WebKit)ツール。Playwrightの方が後発で機能が豊富、自動待機機能でFlaky Testになりにくい。今から始めるならPlaywrightがおすすめだよ

ひよこ ひよこ

スクレイピングに使っていいの?

ペンギン先生 ペンギン先生

技術的には可能だけど法的・倫理的な注意が必要。robots.txtを尊重する、利用規約を確認する、サーバーに過負荷を与えない、個人情報を収集しない、のが最低限のマナー。日本では2019年の改正著作権法で情報解析目的のスクレイピングは一定条件で適法とされたけど、利用規約違反は別問題だから要注意だよ

ひよこ ひよこ

SPASSRとの関係は?

ペンギン先生 ペンギン先生

SPAはクライアント側でJavaScriptが実行されないと中身が表示されない。検索エンジンクローラーJavaScriptを実行しないことがある。そこでサーバー側でヘッドレスブラウザを使ってSPAレンダリングし、完成したHTMLクローラーに返す「プリレンダリング」という手法がある。Prerender.ioなどのサービスがこの方式だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ヘッドレスブラウザ」って出てきたら「画面表示なしでWebページを操作できるブラウザ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Headless Browser」 = 頭なし(GUI なし)ブラウザ
💬 Head(頭=画面表示部分)がless(ない)ブラウザ。中身だけで動くよ
← 用語集にもどる