Web サイトのモニター
スケジュールに沿って Web サイトをクロールし、見つかったすべてのページの変更を検出します
Web サイトモニターは、固定された URL のリストではなく、サイト全体を対象にします。各チェックでは対象の url に対してクロールを実行し、見つかったすべてのページをスクレイピングしたうえで、その結果を直近で保持されたスナップショットと照合します。これにより、あらかじめ指定したページへの編集だけでなく、追加・変更・削除されたページも検知できます。ドキュメントサイト、ブログ、更新履歴、ヘルプセンター、競合他社のサイトには最適な選択肢です。
このページでは crawl ターゲットを扱います。スケジューリング、ゴールと判定、変更追跡、通知、料金は、すべてのモニタータイプで共通です。モニターの概要 を参照してください。
各チェック時にクロールで検出されたすべてのページの差分を取得するには、crawl ターゲットを持つモニターを作成します。
from firecrawl import Firecrawl
firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")
monitor = firecrawl.create_monitor(
name="Docs monitor",
schedule={"cron": "7-59/15 * * * *", "timezone": "UTC"},
goal="Notify me when docs pages add, remove, or materially change API behavior",
targets=[
{
"type": "crawl",
"url": "https://example.com/docs",
"crawlOptions": {
"limit": 100,
"maxDiscoveryDepth": 3,
},
}
],
webhook={
"url": "https://example.com/webhooks/firecrawl",
"events": ["monitor.page", "monitor.check.completed"],
},
)
print(monitor.id)crawl ターゲットでは、type と 1 つの url が必要です。クロールの挙動は crawlOptions、検出された各ページをどのようにスクレイピングするかは scrapeOptions で指定します。
{
"type": "crawl",
"url": "https://example.com/docs",
"crawlOptions": {
"limit": 100,
"includePaths": ["/docs"]
},
"scrapeOptions": {
"formats": ["markdown"]
}
}一般的な crawlOptions フィールド:
limit: 1 回のチェックでクロールするページの最大数。maxDiscoveryDepth: 開始urlから何リンク先までページを検出するか。maxDepth: クロールの最大深度。includePaths: これらのパスパターンに一致する URL のみをモニターします (例:/docs) 。excludePaths: これらのパスパターンに一致する URL はスキップします。
ページ モニターと同様に、モニターによってトリガーされるスクレイピングでは maxAge のデフォルト値が 0 になるため、scrapeOptions で別の maxAge を設定しない限り、各チェックで検出されたページは毎回新たにスクレイピングされます。
クロールチェックでは、検出されたすべてのページを前回のチェック結果と照合し、ページごとのステータスを記録します。
same: ページが再度検出され、変更はありませんでした。changed: ページが再度検出され、変更がありました。new: ページが初めて検出されました。removed: 前回のチェックで検出されたページが、今回は検出されませんでした。error: ページをチェックできませんでした。
クロールされたページ全体の特定の構造化フィールドに対してアラートを出すには、scrapeOptions に changeTracking フォーマットを追加してください。変更追跡 を参照してください。