テスト
10,000ページ
$3.75
$0.38/1Kページ
- 実際のURLで試す
- 最大のパックと同じAPI
- クレジットの有効期限なし
ユースケース · 移行とエクスポート · /crawl
静的サイトジェネレーター、ドキュメントプラットフォーム、ナレッジベースへの移行は、多くの場合ひとつの疑問から始まります: ページをきれいなMarkdownとして取り出すにはどうすればよいか? クロールなら1ジョブで完了し、タイトル、日付、URLはfront matterに保持されます。
概要
ウェブサイト全体をMarkdownに変換するにはどうすればよいですか?
サイトをクロールし、各ページの本文をMarkdownとして読み取り、タイトル、URL、日付をfront matterに持つ.mdファイルをページごとに1つ書き出します。WebReaderAPIは1ジョブあたり最大10,000ページをクロールし、sitemapとrobots.txtに従い、2026年10月時点で$0.07/1Kページから1ページにつき1クレジットで課金します。以下のPythonスクリプトがファイルを書き出します。KYC不要、暗号資産で支払い。
| エンドポイント | POST https://webreaderapi.com/api/v1/crawl、結果はGET https://webreaderapi.com/api/v1/jobs/{job_id} |
|---|---|
| スコープ | 1ジョブにつき1つのWebサイトを、最大10,000ページまでクロール。サイトマップ、robots.txt、Crawl-delayに従います |
| ページごと | 本文のMarkdownに加えて、タイトル、description、author、日付、言語 |
| ページ全体 | main_content=falseは必要なときにナビゲーションやフッターも保持します |
| ご自身のrobots.txt | エクスポートするページに対してWebReaderAPIを許可する必要があります |
| 料金 | 10,000ページで$3.75。クレジットに有効期限はありません |
コンテンツを、それをレンダリングするシステムから外に出す必要があるときはいつでも。よくあるケース:
いずれの場合も必要なのは言葉と構造であり、それを囲むテーマではありません。
import os
import pathlib
import time
from urllib.parse import urlparse
import requests
API = "https://webreaderapi.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}
SITE = "https://www.example.com/"
OUT = pathlib.Path("export")
def target_path(url):
path = urlparse(url).path.strip("/") or "index"
return OUT / (path + ".md")
def front_matter(page):
fields = {"title": page.get("title", ""), "source": page["final_url"], "date": page.get("published_at") or ""}
lines = ["---"] + [key + ": " + repr(value) for key, value in fields.items()] + ["---", ""]
return "\n".join(lines)
job = requests.post(API + "/crawl", headers=HEADERS, json={"url": SITE, "limit": 2000, "max_depth": 5}, timeout=60).json()
cursor, delay, written = None, 5, 0
while True:
params = {"cursor": cursor} if cursor else {}
batch = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json()
for page in batch.get("results", []):
if "markdown" not in page:
continue
dest = target_path(page["final_url"])
dest.parent.mkdir(parents=True, exist_ok=True)
dest.write_text(front_matter(page) + page["markdown"] + "\n", encoding="utf-8")
written += 1
cursor = batch.get("next_cursor")
if batch["status"] == "done" and not cursor:
break
if not cursor:
time.sleep(delay)
delay = min(delay * 2, 60)
print(written, "files in", OUT)
スクリプトと同様に、URLパスをファイルパスにミラーリングします: /guides/setup/はexport/guides/setup.mdになります。元のURLをfront matterにsourceとして保持しておけば、移行後にリダイレクトを設定し、何も失われていないことを確認できます。
Markdown内のリンクは現在のURLを指したままです。移動後はドメインまたはパスプレフィックスを一括で置換し、サンプルページでテストしてください。テーブルやコードブロックはMarkdownのまま残るので、ほとんどの静的ジェネレーターは変更なしでレンダリングします。
エクスポートの間だけ当社のトークンを許可してください。WebReaderAPIはWebReaderAPIまたはすべてのロボットに対してrobots.txtが許可するものだけを読み取ります。ご自身のサイトも同様です。User-agent: WebReaderAPIとAllow: /を含むグループを追加し、クロールを実行した後、必要なら削除してください。
正確な行と、サーバーログに表示されるUser-Agentはクローラーページに記載しています。禁止されたままのページはスキップされ、課金されません。
1ページにつき1クレジット、テキスト表示にブラウザが必要なページは2クレジットです。サーバー側でレンダリングされる2,000ページのサイトは初回2,000クレジット、同じサイトがJavaScriptアプリの場合は最大4,000クレジットになることがあります。どちらも2026年10月時点で$3.75分の10,000ページに収まります。
50,000ページのサイトはinclude_pathsでセクションごとに分割し、複数のジョブが必要で、100,000ページ($21.75)に収まります。エクスポート後に残ったクレジットは、後の更新のためにアカウントに残ります。
ページ数を数え、サイトがレンダリングにJavaScriptを必要とする場合はその数を2倍にして、その上のパックを選んでください。クレジットに有効期限はありません。
10,000ページ
$3.75
$0.38/1Kページ
50,000ページ
$14.25
$0.28/1Kページ
100,000ページ
$21.75
$0.22/1Kページ
すべてのプランに含まれるもの: 本文抽出 · 必要な場合はJavaScriptをレンダリング · 失敗・拒否されたページは課金なし · クレジットの有効期限なし
はい。クロールオプションでmain_content=falseを設定すると、各ファイルにMarkdownに変換された完全なページが保存されます。新しいテーマが独自のナビゲーションを提供するため、ほとんどの移行ではメインコンテンツのみが好まれます。
いいえ。include_images=trueでは、画像リンクはaltテキストとともにMarkdownに残ります。移行でファイル自体が必要な場合は、ご自身のスクリプトでダウンロードしてください。
そのrobots.txtが許可している公開ページのみ、かつその利用規約と法律が認める用途に限ります。移行やバックアップの場合は、ご自身のサイト、または所有者が同意したサイトをエクスポートしてください。
1回のクロールジョブで1ドメイン内、最大10,000ページまでです。より大きなサイトはinclude_pathsでセクションごとに分割し、複数のジョブを実行してください。
$0.07/1Kページから · KYC不要
APIキーを取得