メインコンテンツへスキップ
Olostepの/v1/crawlsエンドポイントを通じて、ウェブサイトをクロールし、すべてのページからコンテンツを取得できます。
  • ウェブサイトをクロールしてすべてのサブページからコンテンツを取得(またはクロールの深さを制限)
  • 特定のページをクロールするための特別なパターンを使用(例: /blog/**
  • クロールが完了したときに通知を受け取るためにwebhook_urlを渡す
  • 特定のページのみを見つけるための検索クエリと関連性によるソート
APIの詳細については、クロールエンドポイントAPIリファレンスを参照してください。

インストール

pip install olostep

クロールを開始する

開始URL、含める/除外するURLグロブ、max_pagesを指定します。オプション: max_depthinclude_externalinclude_subdomainsearch_querytop_nwebhook_urltimeout
from olostep import Olostep

client = Olostep(api_key="YOUR_REAL_KEY")

crawl = client.crawls.create(
    start_url="https://olostep.com",
    max_pages=100,
    include_urls=["/**"],
    exclude_urls=["/collections/**"],
    include_external=False,
)

print(crawl.id, crawl.status)
Olostepではすべてがオブジェクトであるため、レスポンスとしてcrawlオブジェクトを受け取ります。crawlオブジェクトにはidstatusなどのプロパティがあり、クロールを追跡するのに使用できます。

クロールステータスを確認する

statuscompletedになるまでクロールをポーリングして進行状況を追跡します。
# 前のステップからのcrawlオブジェクトを使用
info = crawl.info()
print(info.status, info.pages_count)

# または完了するまで待つ
crawl.wait_till_done(check_every_n_secs=5)
または、クロール開始時にwebhook_urlを渡して、クロールが完了したときに通知を受け取ることもできます。

ページをリストする(カーソルでページネート/ストリーム)

ページを取得し、cursorlimitを使用して反復します。クロールがin_progressまたはcompletedの間に動作します。
# すべてのページを反復(クロール完了を自動的に待機し、ページネーションを処理)
for page in crawl.pages():
    print(page.url, page.retrieve_id)

検索クエリ(関連性の高い上位N件に制限)

開始時にsearch_queryを使用し、オプションでsearch_queryでリストをフィルタリングします。ページごとの探索をtop_nで制限します。
from olostep import Olostep

client = Olostep(api_key="YOUR_REAL_KEY")

crawl = client.crawls.create(
    start_url="https://olostep.com",
    max_pages=100,
    include_urls=["/**"],
    search_query="contact us",
    top_n=5,
)

for page in crawl.pages(search_query="contact us"):
    print(page.url)

コンテンツを取得する

各ページのretrieve_idを使用して、/v1/retrieveからhtml_contentmarkdown_contentを取得します。
# クロールされた各ページのコンテンツを取得
for page in crawl.pages():
    content = page.retrieve(["markdown"])
    print(content.markdown_content)

注意事項

  • ページネーションはカーソルベースです。cursorがなくなるまでリクエストを繰り返します。
  • /v1/crawls/{crawl_id}/pagesのコンテンツフィールドは廃止予定です。/v1/retrieveを使用してください。
  • Webhooks: クロール完了時にPOSTを受け取るためにwebhook_urlを設定します。

料金

クロールはクロールされたページごとに1クレジットがかかります。