- 動画スクレイピング: 画面キャプチャ動画をGoogle Geminiモデルに入力し、構造化データへ変換
- 画像モデルの利用: Gemini、GPT-4o、Claude 3.7などを使って、画像や非構造化PDFからデータを抽出
- Playwrightなど最新ライブラリの活用: ブラウザ自動化を実行。動画・画像分析モデルと統合して利用
- Simon Willisonがデータジャーナリズムカンファレンス NICAR 2025で行った1時間のインタラクティブワークショップ
ワークショップ構成
1. Gitスクレイピング
- Gitスクレイパーとは?
- GitHub Actionsを使ってWebサイトやリソースを定期的にスクレイピングし、変更履歴を記録可能
- GitHubリポジトリでテンプレートRepoを利用して複製した後、簡単に設定可能
- 特定のWebサイトURLまたはJSONファイルのURLを入力すると、毎日自動実行される
- リポジトリのコミットページURLに
.atomを追加するとRSSフィードを生成可能
- RSSリーダーでWebサイトの変更をリアルタイムに確認可能
2. ブラウザ内JavaScriptスクレイピング
- 複雑なWebサイトでは、単純なHTMLパースだけではデータ抽出が難しい
- 実際のブラウザでページ読み込み後、JavaScriptを使ってスクレイピング可能
- テーブルデータ抽出: ブラウザ開発者ツールでJavaScriptを使い、テーブルデータをJSONへ変換可能
- 無限スクロールページ処理: JavaScriptでページに継続的に追加されるコンテンツを自動収集可能
- shot-scraperを使った自動化:
- 特定コマンドでWebページ全体のスクリーンショットをキャプチャ可能
- JavaScriptコード実行後、JSON形式でデータ出力可能
3. LLMを用いた構造化データ抽出
- LLM(Large Language Model)を使って、非構造化データを構造化データへ変換可能
- OpenAIおよびGoogle Gemini APIキーが必要
- CodespacesまたはローカルのPython環境で実行可能
- スキーマによるデータ抽出
- スキーマ(schema)とは、LLMが返すデータ形式を定義するもの
- たとえばタイトル、URL、日付などをスキーマに定義し、一貫した形式でデータ抽出可能
- Webページからデータをスクレイピングする際、スキーマベースで出力可能
- コスト計算とモデル選択
- モデルごとに入力・出力トークン数に応じてコストが発生
- GPT-4o miniモデルは安価だが、他のモデルは高コストになる場合がある
- たとえばGPT-4.5モデルは、同じ作業でもはるかに高いコストがかかる可能性がある
- Geminiモデルは比較的安価で、さまざまな選択肢を提供
- PDFからのデータ抽出
- FEMA Daily Operations Briefing のようなPDF文書からデータ抽出可能
- GeminiモデルはPDFファイルを入力として受け取り、構造化されたJSON形式で出力可能
- PDFから特定の表やテキストを抽出可能
- 画像からのデータ抽出
- GPT-4oは画像からデータを抽出できる
- スクリーンショットをモデルに入力し、構造化データを出力可能
- モデル選択のヒント
- Gemini 2.0 Proモデルは無料だが、厳しい速度制限がある
- コスト効率と性能を考慮し、複数モデルをテストして選ぶべき
- Webページの特性によっては、LLMより shot-scraper の方が有用な場合がある
- 複雑なデータ処理の課題
- 複雑なインフォグラフィックや地図からデータを抽出する際、モデル性能に差が出ることがある
- さまざまなモデルを試し、最適な性能を示すモデルを選ぶ必要がある
4. Google AI Studioを使った動画スクレイピング
- 動画スクレイピングは、通常のスクレイピングが難しいWebサイトからデータを抽出できる強力な方法
- Google Geminiモデルは動画入力を受け取り、JSON形式の構造化データへ変換可能
- 画面録画後、その動画をAIモデルに入力してデータ抽出可能
- 動画スクレイピングの流れ
- Webサイトで目的のデータを含むセクションへ移動
- 画面録画ツール(例: QuickTime Player)を起動
- Webサイトを操作 → 重要な箇所で一時停止
- 録画した動画を Google AI Studio にアップロード
- AI Studioでモデルプロンプトを作成し、データ抽出
- スキーマ抽出ツールを使ってJSON形式でデータを構成可能
- 動画スクレイピングの利点
- 複雑なWebサイト構造を回避可能
- JavaScriptレンダリングが必要なサイトで有効
- ページ内の多様なデータ(テキスト、表、画像など)を抽出可能
- 注意事項
- AI Studioで提供される機能の多くは無料だが、入力データが学習に利用される可能性がある
- セキュリティが重要なデータは入力しない方がよい
- 複雑なWebサイトでは、動画スクレイピングが他のスクレイピング手法より効率的な場合がある
- リアルタイムストリーミングオプション
- AI Studioの Stream Realtime オプションを使うとリアルタイムデータ抽出が可能
- スクレイピングが難しい動的コンテンツでも効果的な場合がある
- ニュースルームでの活用
- ニュースルームでの複雑なデータ抽出や自動化に有用
- Geminiモデルの性能と精度をテストして最適な方法を導き出せる
- ワークショップ後も協業とフィードバックが可能
追加ツールと資料
3件のコメント
うーん……GitHub Actions を使ったのは、GitHub のポリシー違反になりそうですね
Android版もあれば本当にいいのに
マクロ防止の回避機能を備えれば……市場の勝者になれそうです。