🍜
stagehandで吉村家の住所を取得
概要
stagehandはざっくりいうとplaywrightを自然言語で操作するためのライブラリ。
食べログのトップページから検索フォームを辿って、赤枠部分の住所が取れるか検証してみた。
スクリプト
import { Stagehand } from "@browserbasehq/stagehand";
import { z } from "zod";
// 初期化
const stagehand = new Stagehand({
env: "LOCAL",
});
// 食べログにアクセス
await stagehand.init();
const page = stagehand.page;
await page.goto("https://tabelog.com/");
// 吉村家を検索
await page.act({ action: "キーワード欄に吉村家と入力" });
await page.act({ action: "検索ボタンを押す" });
// 吉村家のページに遷移
await page.act({ action: "吉村家を探して詳細ページへのリンクを押す" });
// 詳細ページから住所を取得
const contributor = await page.extract({
instruction: "住所を抜き出す",
schema: z.object({
address: z.string(),
}),
});
await stagehand.close();
console.log(`吉村家の住所: ${contributor.address}`);
結果
取れた!
吉村家の住所: 神奈川県横浜市西区岡野1-6-4
このスクリプトにかかったgpt4oのコストは以下。
ほぼinput tokenに対してのコスト。
(htmlを全て送信しているため大きくなりがち?)
回数を重ねるとそれなりにかかるなぁと言う印象。
$0.13
実行時間は以下。
チューニングすれば早くはできそうだが、デフォルトだと時間がかかる。
2分7秒
感想
ブラウザが開くので実際どんな挙動をしているか確認できる。
ページ遷移する度にページを全てスクロールし、全情報にアクセスできるようにしているっぽい。
browser-useに比べて汎用性は低いが、タスクが具体的になる分精度は高くなりそう。
Discussion