- Published on
Nightmare.jsのインストールと使い方ーNode.jsでブラウザ自動化
- Authors
- Name
- Shou Arisaka / 有坂翔
Nightmare.jsは、Node.js環境でブラウザの自動化を行うためのライブラリです。スクリーンショットの取得やフォームの送信、ページのナビゲーションなど、さまざまな操作を自動化することができます。本記事では、Nightmare.jsのインストール方法と基本的な使い方について詳しく解説します。
Nightmare.jsのインストール
まずは、Nightmare.jsをプロジェクトにインストールしましょう。Node.jsとnpmがインストールされていることを確認してから、以下のコマンドを実行します。
npm install nightmare
これでNightmare.jsがプロジェクトにインストールされます。
デバッグ
デバッグは以下のように行います。
set DEBUG=nightmare & node C:\document\js\nightmare-test.js
DEBUG=nightmare
基本的な使い方
Nightmare.jsの初期設定
Nightmare.jsを使用するためには、まずインスタンスを作成する必要があります。以下のコードは、Nightmare.jsの基本的な初期設定を示しています。
const Nightmare = require('nightmare');
const nightmare = Nightmare({ show: true });
{ show: true }
オプションを設定することで、ブラウザウィンドウが表示されます。デバッグやテストの際に役立ちます。
ページのナビゲーション
Nightmare.jsを使用してウェブページに移動する方法を見てみましょう。
nightmare
.goto('https://example.com')
.then(() => console.log('Page loaded'))
.catch(error => console.error('Failed to load the page', error));
goto
メソッドを使用して指定したURLに移動します。then
メソッドでページのロード完了後の処理を行い、catch
メソッドでエラーを処理します。
フォームの入力と送信
Nightmare.jsを使ってフォームに入力し、送信する方法を見てみましょう。
nightmare
.goto('https://example.com/login')
.type('#username', 'yourUsername')
.type('#password', 'yourPassword')
.click('#loginButton')
.wait('#dashboard')
.then(() => console.log('Login successful'))
.catch(error => console.error('Login failed', error));
type
メソッドを使用してフォームの入力フィールドにテキストを入力し、click
メソッドでボタンをクリックします。wait
メソッドで次のページがロードされるのを待ちます。
スクリーンショットの取得
Nightmare.jsを使用してウェブページのスクリーンショットを取得する方法を見てみましょう。
nightmare
.goto('https://example.com')
.screenshot('example.png')
.then(() => console.log('Screenshot saved'))
.catch(error => console.error('Failed to take screenshot', error));
screenshot
メソッドを使用して、指定したファイル名でスクリーンショットを保存します。
ページの内容を取得
Nightmare.jsを使用してウェブページの内容を取得する方法を見てみましょう。
nightmare
.goto('https://example.com')
.evaluate(() => document.querySelector('h1').innerText)
.then(text => console.log('Page title:', text))
.catch(error => console.error('Failed to get page content', error));
evaluate
メソッドを使用して、ブラウザ内でJavaScriptを実行し、その結果を取得します。
DuckDuckGoでのサンプル
以下のコードでは、DuckDuckGoで検索を行い、検索結果の最初のリンクを取得しています。
var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true });
nightmare
.goto('https://duckduckgo.com')
.type('#search_form_input_homepage', 'github nightmare')
.click('#search_button_homepage')
.wait('#zero_click_wrapper .c-info__title a')
.evaluate(function () {
return document.querySelector('#zero_click_wrapper .c-info__title a').href;
})
.end()
.then(function (result) {
console.log(result);
})
.catch(function (error) {
console.error('Search failed:', error);
});
まとめ
Nightmare.jsは、Node.js環境でブラウザの自動化を行うための強力なツールです。基本的なインストール方法から、ページのナビゲーション、フォームの入力、スクリーンショットの取得、ページ内容の取得まで、さまざまな操作を自動化することができます。これを利用して、効率的なウェブスクレイピングや自動化タスクを実現しましょう。