Grasp ドキュメントGrasp ドキュメント
GitHub
  • English
  • 简体中文
  • 日本語
GitHub
  • English
  • 简体中文
  • 日本語
  • はじめに

    • Grasp SDK
    • 認証
  • SDK ドキュメント

    • TypeScript/Node.js SDK
    • Python SDK

認証

Graspでの認証は2つの方法があります:

1. 環境変数(推奨)

GRASP_KEY 環境変数を設定します:

export GRASP_KEY=your_api_key_here

2. コードでの直接使用

コードでAPIキーを直接渡します:

TypeScript/Node.js
import { Grasp } from '@grasplabs/grasp';

// 環境変数を使用
const grasp = new Grasp();
const session = await grasp.launch();

// またはAPIキーを直接渡す
const graspWithKey = new Grasp({ apiKey: 'your_api_key_here' });
const sessionWithKey = await graspWithKey.launch();
Python
import os
from grasp_sdk import Grasp

# 環境変数を使用
grasp = Grasp()
async with grasp.launch_context() as session:
    # あなたのコード
    pass

# またはAPIキーを直接渡す
grasp_with_key = Grasp(api_key='your_api_key_here')
async with grasp_with_key.launch_context() as session:
    # あなたのコード
    pass

設定パラメータ

Graspインスタンスオプション

Graspインスタンスを作成する際、以下のパラメータを設定できます:

パラメータ型必須デフォルト説明
apiKeystringはい*$GRASP_KEYAPIキー(GRASP_KEY環境変数が設定されている場合はオプション)

起動オプション

launch()メソッドを呼び出す際、以下の設定パラメータを設定できます:

パラメータ型必須デフォルト説明
browser.typeenumいいえchromiumリモートブラウザタイプ:chromium または chrome-stable
browser.headlessbooleanいいえtrueヘッドレスモード(ヘッドレスはリソースを節約しますが、ボットとして検出されやすい場合があります)
browser.adblockbooleanいいえfalse広告ブロックを有効にする(実験的機能)
keepAliveMSintegerいいえ900000 (15分)セッション保持時間(ミリ秒)(最大:86400000 - 24時間)
timeoutintegerいいえ300000 (5分)起動タイムアウト(ミリ秒)
debugbooleanいいえfalseより詳細なターミナル出力のためのデバッグモードを有効にする
logLevelenumいいえinfoログレベル:debug、info、warn、error

ベストプラクティス

  1. 環境変数を使用:APIキーをハードコーディングする代わりに環境変数を使用してセキュリティを保つ
  2. セッション管理:リソースリークや予期しない料金を避けるため、常にセッションを適切に閉じる
  3. keepAliveMS設定:使用ケースに基づいて適切な保持時間を設定(最大24時間)
  4. エラーハンドリング:ネットワーク問題やタイムアウトを適切に処理するためのエラーハンドリングを実装

セッションライフサイクル

TypeScript/Node.js
import { Grasp } from '@grasplabs/grasp';
import { chromium } from 'playwright';

const grasp = new Grasp();

try {
  // セッションを起動
  const session = await grasp.launch({
    browser: {
      type: 'chromium',
      headless: true,
      adblock: true
    },
    keepAliveMS: 600000, // 10分
    debug: true
  });

  // ブラウザに接続
  const browser = await chromium.connectOverCDP(session.browser.endpoint);
  const page = await browser.newPage();
  
  // 自動化タスクを実行
  await page.goto('https://example.com');
  await page.screenshot({ path: 'screenshot.png' });
  
  // リソースをクリーンアップ
  await browser.close();
  await session.close();
} catch (error) {
  console.error('セッションエラー:', error);
}
Python
import asyncio
from grasp_sdk import Grasp
from playwright.async_api import async_playwright

async def main():
    grasp = Grasp()
    
    # 推奨:コンテキストマネージャーを使用して自動クリーンアップ
    async with grasp.launch_context({
        'browser': {
            'type': 'chromium',
            'headless': True,
            'adblock': True
        },
        'keep_alive_ms': 600000,  # 10分
        'debug': True
    }) as session:
        async with async_playwright() as p:
            browser = await p.chromium.connect_over_cdp(session.browser.endpoint)
            page = await browser.new_page()
            
            # 自動化タスクを実行
            await page.goto('https://example.com')
            await page.screenshot(path='screenshot.png')
            
            await browser.close()
    # セッションはコンテキスト終了時に自動的に閉じられます

if __name__ == '__main__':
    asyncio.run(main())
Prev
Grasp SDK