Skip to content

クイックスタート:候鳥環境をコードで制御する

この章では、簡単なスクリプトを使用して、指定した Mbbrowser 環境を起動し、コードで制御するまでの流れを解説します。

実戦スクリプト

まず、start.js という名前のファイルを作成し、以下のコードをコピー&ペーストしてください。

javascript
const puppeteer = require('puppeteer-core');
const axios = require('axios'); // npm install axios を実行しておいてください

async function startProject() {
  // 1. 設定情報のセット
  const API_URL = 'http://127.0.0.1:8186'; // ApiServer のアドレス
  const SESSION_ID = '373808cb37bd63f5f7d92415e736e85f'; // あなたの環境 ID

  try {
    // 2. ApiServer インターフェースを呼び出して環境を起動
    console.log('Mbbrowser 環境を起動しています...');
    const response = await axios.post(`${API_URL}/api/v1/browser/start`, {
      Session_ID: SESSION_ID
    });

    if (response.data.code === 0) {
      // 3. WebSocket 接続アドレスを取得
      const wsEndpoint = response.data.data.ws;
      console.log('環境の起動に成功しました。制御を開始します...');

      // 4. Puppeteer で対象の環境に接続
      const browser = await puppeteer.connect({
        browserWSEndpoint: wsEndpoint,
        defaultViewport: null // ブラウザのデフォルトウィンドウサイズを使用
      });

      // 5. 新しいページを開いて移動
      const page = await browser.newPage();
      await page.goto('https://www.mbbrowser.com', { waitUntil: 'networkidle2' });

      console.log('現在のページタイトル:', await page.title());

      // 6. 操作完了後に接続を解除(環境自体は stop インターフェースを呼ばない限り実行され続けます)
      await browser.disconnect();
      console.log('自動化操作が完了しました!');
      
    } else {
      console.error('環境の起動に失敗しました:', response.data.message);
    }
  } catch (error) {
    console.error('接続エラー:', error.message);
  }
}

startProject();

重要なポイントの解説

  1. axios.post: まず ApiServer にリクエストを送り、環境を起動させます。環境が起動していないと Puppeteer は接続先を見つけられません。
  2. wsEndpoint: これは起動成功時に返される「唯一の鍵」です。Puppeteer はこのアドレスを介してブラウザの内部にアクセスします。
  3. puppeteer.connect: 本通常の起動(launch)ではなく、**接続(connect)**を使用する点に注意してください。これが指紋ブラウザ自動化における核心的な違いです。
  4. browser.disconnect: スクリプトの処理が終わったら、接続を解除することを推奨します。これにより、スクリプトが終了してもブラウザウィンドウはデスクトップに残り、必要に応じて続きを手動で操作することが可能です。

TIP

環境の制御方法は理解できましたか?次の章 核心 API の詳細解説 では、ブラウザにより複雑な命令を出す方法を学びます。