🥳Scrapeless Communityに参加して、強力なWebスクレイピングツールキットにアクセスするために無料トライアルを取得してください!
ブログに戻ります

セッションURL:人間とコンピュータの相互作用におけるユーザープライバシーを確保するには?

Michael Lee
Michael Lee

Expert Network Defense Engineer

27-May-2025

スクリーピングブラウザがセッションベースのワークフローを通じて自動化タスクを完全にサポートするようになりました。プレイグラウンドまたはAPIを介して開始された場合でも、すべてのプログラム実行はダッシュボードで同期的に追跡できます。

  • ライブビューを開いて、実行中のステータスをリアルタイムで監視します。
  • リモートユーザーの操作(ログインページ、フォーム記入、支払い完了など)用にライブURLを共有します。
  • セッションリプレイで実行プロセス全体をレビューします。

しかし、あなたは疑問に思うかもしれません:

これらのセッション機能とは一体何ですか?どのように私にbenefitしますか? そして、どのように使用しますか?

このブログでは、スクリーピングブラウザのセッションについて深く掘り下げ、以下をカバーします:

  • ライブビューの概念と目的
  • ライブURLとは何か
  • 直接的なユーザーインタラクションのためにライブURLを使用する方法
  • セッションリプレイが重要な理由

ライブビュー:リアルタイムプログラム監視

スクリーピングブラウザのライブビューフィーチャーを利用すると、ブラウザセッションをリアルタイムで追跡および制御できます。具体的には、クリック、入力、およびすべてのブラウザアクションを観察し、自動化ワークフローを監視し、スクリプトを手動でデバッグし、必要に応じてセッションを直接制御できます。

ブラウザセッションの作成

まず、セッションを作成する必要があります。これには二つの方法があります。

方法1:プレイグラウンドを通じてセッションを作成

プレイグラウンドを通じてセッションを作成

方法2:APIを通じてセッションを作成

APIを使用してもセッションを作成できます。APIドキュメントをご覧ください:スクリーピングブラウザAPIドキュメント。私たちのセッション機能は、リアルタイムビュー機能を含め、セッションを管理する手助けをします。

JavaScript Copy
const puppeteer =require('puppeteer-core');
 
const token = 'APIキー';
 
// カスタムフィンガープリント
const fingerprint = {
    platform: 'Windows',
}
 
const query = new URLSearchParams({
    session_ttl: 180,
    session_name: 'test_scraping', // セッション名
    proxy_country: 'ANY',
    token: token,
    fingerprint: encodeURIComponent(JSON.stringify(fingerprint)),
});
 
const connectionURL = `wss://browser.scrapeless.com/browser?${query.toString()}`;
 
(async () => {
    const browser = await puppeteer.connect({browserWSEndpoint: connectionURL});
    const page = await browser.newPage();
 
    await page.goto('https://www.scrapeless.com');
    await new Promise(res => setTimeout(res, 3000));
 
    await page.goto('https://www.google.com');
    await new Promise(res => setTimeout(res, 3000));
 
    await page.goto('https://www.youtube.com');
    await new Promise(res => setTimeout(res, 3000));
 
    await browser.close();
})();

ライブセッションの表示

スクリーピングセッション管理インターフェースでも、ライブセッションを簡単に表示できます。

方法1:ダッシュボードでライブセッションを直接表示

プレイグラウンドでセッションを作成すると、右側にライブ実行中のセッションが表示されます。

ライブ実行中のセッション

または、ライブセッションページでセッションステータスを確認できます:

ライブセッション

方法2:ライブURLを通じてセッションを表示

実行中のセッションに対してライブURLが生成され、ブラウザでプロセスをライブで観察することができます。

ライブURLは次の用途に便利です:

  • デバッグと監視:すべてをリアルタイムで観察したり、チームメイトと共有したりします。
  • 人間のインタラクション:直接制御したり入力したりします——ユーザーがパスワードのような機密情報を安全に入力できるようにします。

ライブセッションページの「🔗」アイコンをクリックすることでライブURLをコピーできます。プレイグラウンドとAPIで作成されたセッションは両方ともライブURLをサポートしています。

  1. ダッシュボードからライブURLを取得

以下のチュートリアルをご覧ください:

ライブURL
  1. API経由でライブURLを取得

APIコールを通じてもライブURLを取得できます。以下のサンプルコードは、セッションAPIを介してすべての実行中のセッションを取得し、特定のセッションのためにライブURLAPIを使用してライブビューを取得します:

Python Copy
import requests
 
API_CONFIG = {
    "host": "https://api.scrapeless.com",
    "headers": {
        "x-api-token": "APIキー",
        "Content-Type": "application/json"
    }
}
 
async def fetch_live_url(task_id):
    try:
        live_response = requests.get(f"{API_CONFIG['host']}/browser/{task_id}/live", headers=API_CONFIG["headers"])
 
        if not live_response.ok:
            raise Exception(f"ライブURLの取得に失敗しました: {live_response.status_code} {live_response.reason}")
 
        live_result = live_response.json()
        if live_result and live_result.get("data"):
            print(f"taskId: {task_id}")
            print(f"liveUrl: {live_result['data']}")
        else:
Copy
print("このタスクに利用できるライブURLデータはありません")
    except Exception as error:
        print(f"タスク {task_id} のライブURL取得中にエラーが発生しました: {str(error)}")
 
 
async def fetch_browser_sessions():
    try:
        session_response = requests.get(f"{API_CONFIG['host']}/browser/running", headers=API_CONFIG["headers"])
 
        if not session_response.ok:
            raise Exception(f"セッションの取得に失敗しました: {session_response.status_code} {session_response.reason}")
 
        session_result = session_response.json()
 
        sessions = session_result.get("data")
        if not sessions or not isinstance(sessions, list) or len(sessions) == 0:
            print("アクティブなブラウザセッションは見つかりませんでした")
            return
 
        task_id = sessions[0].get("taskId")
        if not task_id:
            print("セッションデータにタスクIDが見つかりませんでした")
            return
 
        await fetch_live_url(task_id)
    except Exception as error:
        print(f"ブラウザセッション取得中にエラーが発生しました: {str(error)}")
 
 
import asyncio
 
asyncio.run(fetch_browser_sessions())
  1. CDPコマンドでライブURLを取得

コードが実行中にライブURLを取得するには、CDPコマンド Agent.liveURL を使用してください:

Python Copy
import asyncio
 
from pyppeteer import launcher
 
 
async def main():
    try:
        browser = await launcher.connect(
            browserWSEndpoint="wss://browser.scrapeless.com/browser?token=APIKey&session_ttl=180&proxy_country=ANY"
        )
        page = await browser.newPage()
        await page.goto('https://www.scrapeless.com')
 
        client = await page.target.createCDPSession()
        result = await client.send('Agent.liveURL')
        print(result)
    except Exception as e:
        print(e)
 
 
asyncio.run(main())

述べる価値があるハイライト:

ライブURLはリアルタイムの監視だけでなく、人間と機械の相互作用も可能にします。

例えば:ユーザーにログインパスワードを入力させる必要があります。

「ああ!私の個人情報を盗もうとしているの?絶対に無理!」

実際には、ユーザーが自分で画面にデータを入力でき、そのすべてが100%プライベートに保たれます。この直接的でありながら安全な方法がライブURLを使って可能になる — リモートでのインタラクションです。

ライブURL: どのようにコラボレーションとユーザーインタラクションを可能にするか

Scrapelessへの登録とログインを例に挙げ、ユーザーと直接インタラクションする方法を説明します。

必要なコードはこちらです:

JavaScript Copy
const puppeteer = require("puppeteer-core");

(async () => {
    const fingerprint = {
        // カスタムスクリーンフィンガープリント
        screen: {
            width: 1920,
            height: 1080,
        },
        args: {
            // スクリーンフィンガープリントと同じ値でウィンドウサイズを設定
            "--window-size": "1920,1080",
        },
    };

    const query = new URLSearchParams({
        token: "APIKey",
        session_ttl: 600,
        proxy_country: "ANY",
        fingerprint: encodeURIComponent(JSON.stringify(fingerprint)),
    });
    const browserWsEndpoint = `wss://browser.scrapeless.com/browser?${query.toString()}`;

    try {
        const browser = await puppeteer.connect({
            browserWSEndpoint: browserWsEndpoint,
        });

        const page = await browser.newPage();
        await page.setViewport(null);

        await page.goto(`https://app.scrapeless.com/passport/register`, {
            timeout: 120000,
            waitUntil: "domcontentloaded",
        });

        const client = await page.createCDPSession();
        const result = await client.send("Agent.liveURL");

        // ライブURLを任意のユーザーと共有できます
        console.log(`${result.liveURL}`);

        // ユーザー登録のため5分間待機
        await page.waitForSelector("#none-existing-selector", {timeout: 300_000});
    } catch (e) {
        console.log(e);
    }
})()

上記を実行し、ユーザーとライブURLを共有してください。例えば: Scrapeless登録URL

これまでのすべてのステップ、例えば:

  • ウェブサイトへのナビゲーション
  • Scrapelessのホームページを訪問
  • ログインをクリックして登録ページに入る

これらすべては、上記のコードを使用してセッションを作成することによって直接行うことができます。最も重要なステップは、ユーザーが登録を完了するためにメールとパスワードを入力する必要があることです

ユーザーとライブURLを共有した後、プログラムの実行プロセスをリモートで追跡することができます。プログラムは自動的に実行を続け、ユーザーのインタラクションが必要なページまでジャンプします。他の利用者が入力したパスワードは完全に隠され、ユーザーはパスワード漏洩を心配する必要はありません。

ユーザーの操作プロセスをより直感的に反映するために、次のインタラクションステップを参照してください:

以下のインタラクティブプロセスはすべてライブURL内で実行されます

Copy
## セッションリプレイ:プログラムの実行を再生してすべてをデバッグする
セッションリプレイは、記録ライブラリを使用して構築されたユーザーセッションのビデオのような再現です。リプレイは、ウェブアプリケーションのDOM状態のスナップショットに基づいて作成されます(ブラウザのメモリ内のHTML表現)。各スナップショットを再生すると、ウェブサイト訪問中に行われたすべての操作(すべてのページの読み込み、更新、およびナビゲーションを含む)の記録を確認できます。

セッションリプレイは、プログラムの操作のすべての側面をトラブルシュートするのに役立ちます。すべてのページ操作が記録され、ビデオとして保存されます。セッション中に問題が見つかった場合は、リプレイを通じてトラブルシュートし、調整することができます。
- セッションに移動
- **セッション履歴**をクリック
- セッションを見つける

- セッションの詳細で、再生ボタンをクリックして実行を視聴および確認します:

## 最重要ポイント
Scrapeless Scraping Browserは、**リアルタイムで監視し、リモートで操作し、すべてのステップを再生**します。
- [**ライブビュー**](https://docs.scrapeless.com/en/scraping-browser/features/live-session/): ブラウザのアクティビティをライブストリームのように観覧。すべてのクリックと入力を確認!
- **ライブURL**: ユーザーがデータを直接入力できる共有可能なリンクを生成。完全にプライベートで、安全です。
- [**セッションリプレイ**](https://docs.scrapeless.com/en/scraping-browser/features/session-replay/): 何が起こったかを正確に再生してプロのようにデバッグ — プログラムを再実行する必要はありません。

開発者がデバッグする場合でも、PMがデモする場合でも、カスタマーサポートがユーザーを案内する場合でも、Scrapeless Sessionsがサポートします。

**自動化をスマートで人に優しいものにする時が来ました。**

[**今すぐ無料トライアルを開始!**](https://app.scrapeless.com/passport/login?utm_source=official&utm_medium=blog&utm_campaign=session-url)

Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。

最も人気のある記事

カタログ