PuppeteerとNode.jsを使用してブラウザ操作を自動化する方法

■Puppeteerとは

Puppeteerとは、Chrome、Firefoxのブラウザをプログラムから操作するためのパッケージです。
ブラウザ操作を行いやすくするための機能が用意されており、これらの機能を利用することで簡単かつ効率的にブラウザ操作を行うことができます。

他ソフトウェアと比較した際のメリットとして、
Puppeteer ではChrome、Firefoxを低レイヤーから操作することが可能なChrome DevTools プロトコルを利用しており、これにより細かい制御を高速に行うことができます。

またPuppeteerでは、ヘッドフルまたはヘッドレスのモードを選択することができます。
ヘッドフルモードとは、Puppeteer起動時にブラウザを立ち上げ、そのブラウザ上でレンダリング処理を行いながら操作を行います。
ヘッドレスモードとは、Puppeteer起動時にブラウザをバックグラウンドで実行します。ブラウザを表示しないためリソースを節約することができ、さらにGUIを持たない環境でもブラウザ操作を行うことができます。

■Node.jsとは

Puppeteerを利用するにはNode.js環境が必要になります。

Node.jsとは、サーバサイドで動作するJavascriptランタイム環境です。
Javascriptは主にフロントサイドで多く採用される言語ですが、サーバサイドにNode.jsを採用することで、学習コストを抑えるといったメリットがあります。さらに、Node.jsは大量トラフィックを効率よく処理することを目的とした言語でもあることから、人気を集めています。

■実行環境

今回の実行環境は以下の構成です。
・Node.js (v20.14.0)
・Puppeteer (v22.10.0)

■サンプルコード

今回は、Puppeteerの公式サイトに記載されているデモコードを実行してみます。
(commonjsで実行するため、puppeteerをrequireでインポートするよう修正し、プログラムのコメントを削除しています。)

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  await page.goto('https://developer.chrome.com/');

  await page.setViewport({width: 1080, height: 1024});

  await page.type('.devsite-search-field', 'automate beyond recorder');

  const searchResultSelector = '.devsite-result-item-link';
  await page.waitForSelector(searchResultSelector);
  await page.click(searchResultSelector);

  const textSelector = await page.waitForSelector(
    'text/Customize and automate'
  );
  const fullTitle = await textSelector?.evaluate(el => el.textContent);

  console.log('取得した文字列 "%s".', fullTitle);

  await browser.close();
})();

このコードは以下の操作を行います。
・「https://developer.chrome.com/」へアクセスする
・画面右上の検索テキストボックスに「automate beyond recorder」という文字列を入力する
・検索ボタンを押下する
・検索結果画面へ遷移後、「Customize and automate」という文字列にマッチする要素が表示されるまで待機する
・上記でマッチした文字列の全文を取得する
・取得した文字列をコンソールに出力する

■実行

先ほどのコードを実行してみます。


Puppeteerのコードを実行します。

nodeコマンドからdemo.jsを実行します。


実行結果

Puppeteerによるブラウザの自動操作が完了し、"Customize and automate user flows beyond Chrome DevTools ..."という文字列を取得することができました。

まとめ

PuppeteerとNode.jsを使用してブラウザ操作を自動化する方法について解説しました。
今回は簡単なサンプルコードを用いて解説を行いましたが、Puppeteerにはさらに細かくブラウザ制御を行える機能があります。それについては、また別の記事でご紹介します。

ブラウザ操作の自動化をお考えなら『クラウドBOT』をお試しください

クラウドBOTはブラウザ操作を自動化できるクラウド型のRPAサービスです。複雑な環境構築をが不要であり、会員登録すると無料でブラウザ操作を自動化するロボットを作成できます。ロボットは基本的にノーコードで構築できますが、複雑な処理を行いたい場合は、javascriptを直接記述し、実行させることもできます。
ブラウザ操作の自動化を検討されている方は是非一度お試し下さい。


クラウド型RPAについてもっと詳しく


  1. クラウド型RPAを低価格で導入!そもそもRPAとは?導入ニーズが高まった背景 無料体験も実施!活用事例も参考に
  2. クラウド型RPAを導入するメリットとは?専門知識がなくても簡単に活用できるのが魅力
  3. クラウド型RPAツールを無料体験!代表的なRPA製品「オンプレミス型」と「クラウド型」について
  4. クラウド型RPAツールの導入事例をご紹介!RPAツールの選定ポイント 使い方簡単で格安
  5. iPaaS製品の必要性 iPaaSとの連携が可能なクラウド型RPA『クラウドBOT』 無料プランから利用可能!初めての方は事例を参考に
  6. iPaaS製品とRPAツールの違い 日本でも普及が広がる!iPaaSを導入するメリット
  7. SaaSを連携させてワークフローの自動化・効率化を実現!クラウドサービス「SaaS」の連携手段とクラウド型のRPAツールを利用した連携
  8. SaaSの連携に有用な2製品「iPaaS」と「クラウド型RPA」とは SaaSの連携なら各APIに対応可能◎活用事例も多い『クラウドBOT』の導入を
  9. webブラウザ操作の自動化なら『クラウドBOT』 RPAツールで自動化・効率化できる業務 データ抽出を効率化するなら
  10. webブラウザ操作の自動化ならプログラミング不要で更新も手間いらずの『クラウドBOT』 自動化できる操作をご紹介
  11. ブラウザ操作を自動化する『クラウドBOT』は、日常的に行っているブラウザ操作をノーコードで自動化する事ができます
  12. ブラウザを自動操作する方法 - 『クラウドBOT』を使用して、ブラウザを自動操作する方法を解説します。
  13. Google Chromeのを自動操作するならインストール不要・プログラミング不要で自動操作を実化できる『クラウドBOT』がおすすめ
  14. 初心者でも簡単に使えるおすすめのRPAツール3選 | RPAの選定ポイントについても解説
  15. ブラウザのスクリーンショット撮影を自動化する方法をご紹介
  16. Seleniumを使ってWebスクレイピングを行う方法について
  17. Web上の業務を効率化できるツールをご紹介 | iPaaS、RPAの違いとは
  18. 総務におすすめRPA活用事例をご紹介 | クラウド型RPA活用事例
  19. ブラウザ上で行っている業務を効率化できるおすすめツール3選
  20. PuppeteerとNode.jsを使用してブラウザ操作を自動化する方法
  21. Selenium×pythonでWebスクレイピングを実現する方法(ソースコード付き) | Seleniumとpythonの環境構築と実行手順も解説
  22. クラウド型RPAを用いたカートシステムとWMSのデータ連携事例をご紹介 | ローコストで始める受注データの連携、出荷データの連携
  23. Chromeの拡張機能を使用してWebページのスクリーンショット撮影する方法
  24. Playwrightを使用して、Webページのスクリーンショット撮影を行う
  25. 無料で使えるおすすめのRPAをご紹介 | 無料RPAのメリット・デメリットや選定基準も解説
  26. APIがないWebシステムとデータ連携する方法
  27. Puppeteerを使用してテストを自動化する方法
  28. 簡単にできる!Webサイト画像の一括ダウンロードガイド
  29. 税理士・会計士におすすめ!RPA活用事例 RPAを使って業務効率改善を
  30. RPAとAIの組み合わせ事例をご紹介 | RPA、AIのそれぞれの特徴と組み合わせで実現できる自動化について解説
  31. playwrightを使用してブラウザのテストを自動化する方法について