Gemini API の新機能「URL Context」でWebページ情報抽出を実装してみた

Gemini API の新機能「URL Context」でWebページ情報抽出を実装してみた

まとめ系

2025年のGoogle I/Oで発表されたGemini APIの新機能「URL Context」を使って、Webサイトから自動で情報を抽出するシステムを構築しました。

「URLを投げるだけで中身をAIが理解してくれる」という魔法のような機能に見えましたが、実際に実装してみると様々な課題に直面しました。最終的に安定したシステムを構築するまでの試行錯誤をまとめます。

URL Context機能とは

従来のWebスクレイピングでは、HTMLを取得してパースし、CSSセレクターやXPathで特定の要素を抽出する必要がありました。

URL Context機能を使えば、これらの作業をAIに丸投げできます。

 

最初の実装と失敗

当初、以下のようなシンプルな実装から始めました。

発生した問題

間違った情報が返ってくる

  • 入力: とあるWebサイトのページURL
  • 出力: 全く関係ない別のサイトの情報

動作が不安定

  • 同じURLでも結果が変わる
  • 明らかに学習データから推測した内容

URL Context機能が動作していなかった

最大の原因はtools設定の不備でした。URL Context機能を使うには明示的に指定する必要があります。

また、URL Context機能は新しい機能のため、対応モデルが限定されていました。

原因分析

Webページが膨大だったのが大きな要因でした。

一般的なWebサイトには以下の要素が大量に含まれていました。

  • JavaScript(数万行)
  • CSS(複雑なスタイル定義)
  • 広告・関連コンテンツ・ナビゲーション
  • アナリティクス用のdata属性

 

解決策:ハイブリッドアプローチ

最終的に、従来のスクレイピング + AI分析のハイブリッドアプローチを採用しました。

実装フロー

  1. 自前でHTMLを取得
  2. 不要要素を徹底的に削除
  3. プレーンテキスト化
  4. Geminiで構造化データに変換

HTML軽量化の実装

 

Gemini APIへの送信

 

学んだこと

「URLを渡すだけ」という説明に惑わされ、tools設定を見落としており、公式ドキュメントをよく読むべきでした。

また、基本的にWebページは非常に重く、軽量化なしではAI APIの制限にすぐ引っかかるので考慮する必要がありそうです。

「AIですべて解決」ではなく、現状は従来技術と組み合わせることで、より確実で効率的なシステムを作ることを目指すのが良さそうです。

現在、一部の項目で「N/A」が出力される場合があり、サイト構造の分析と、より適切な文字数制限の設定が今後必要になりそうです。