【要約】AIエージェントでクローリングしてみたら、もうスクレイピングコードを書かなくなった [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
データエンジニアが、Webサイトの構造変化やCSRへの対応に直面し、保守コストの増大に苦慮している。従来のスクレイピング手法では、サイトの仕様変更のたびにコードの修正が必要となる。
- ・CSSセレクタの指定がサイトのリニューアルで容易に壊れる。
- ・Next.js等のJS実行後にDOMが生成されるサイトへの対応が困難。
- ・要素特定のための調査作業が、開発者の精神的負担となっている。
- ・手順を固定的に記述するため、動的なサイトへの適応力が低い。
// Approach
筆者は、目的を自然言語で指示し、ブラウザ操作をAIエージェントに任せる手法を採用した。DOM構造の解析をLLMに委ねることで、実装の工数を大幅に削減している。
- ・
browser-useとGemini (gemini-3.6-flash) を活用。 - ・Pydanticを用いて、出力データのスキーマを定義。
- ・ドメイン制限やタイムアウト設定など、安全な実行環境の設計に注力。
- ・検証専用のAIエージェントを導入し、設計のレビューを自動化。
- ・ブラウザのプロファイル分離を行い、既存環境との競合を回避。
// Result
筆者は、DOM構造を一切解析することなく、自然言語のプロンプトのみでクローリングを完遂した。これにより、サイト構造に依存しない柔軟なデータ収集を実現している。
- ・「いいね数がなければ0とする」等の条件をプロンプトで解決。
- ・エージェントが自律的にリトライを行い、目標を達成。
- ・開発の重心が「DOM操作の実装」から「エージェントの設計」へ移行。
- ・サイトのリニューアルによるコードの破損リスクを大幅に低減。
Senior Engineer Insight
> 開発体験は劇的に向上するが、大規模運用には慎重な判断が必要だ。LLMの推論コストとレイテンシ、非決定的な挙動は、高頻度なバッチ処理における致命的なリスクになり得る。本手法は「構造変化が激しいが、頻度は低い」という特定のユースケースにおいて、極めて高い投資対効果を発揮するだろう。エンジニアの役割は、実装からエージェントのガードレール設計へとシフトする。