# LLM向けにWebページをMarkdownに変換する方法

> 2026年にLLM向けにWebページをMarkdownへ変換する方法：3つの手法、クリーンなMarkdownが保持するもの、トークンの上限の設定方法、そしてチャンク分割するPythonコードを解説します。

- URL: https://webreaderapi.com/ja/guides/convert-web-page-to-markdown/
- 最終更新: 2026-10-22
- 発行者: WebReaderAPI (https://webreaderapi.com)

コピー＆ペーストは1ページなら使えます。ライブラリは自分でクローラーを動かす場合に使えます。APIは1ページにつき1リクエストで済ませたい場合に使えます。ここでは選び方、適切な出力の形、そして再利用できるコードを紹介します。

**概要 — LLM向けにWebページをMarkdownに変換するにはどうすればいいですか？**

ページを取得し、本文だけを残してから、見出し・リスト・表・リンクをMarkdownに変換し、モデルの予算に合わせて長さを制限します。手作業、オープンソースライブラリ、またはAPI呼び出し1回で行えます：**WebReaderAPI**は1ページあたり1クレジットでMarkdownとメタデータを返し、2026年10月時点で$0.07/1Kページから利用できます。KYC不要、暗号資産で支払い。

## WebページからMarkdownを得る3つの方法

| 項目 | 値 |
| --- | --- |
| 手作業 | ブラウザまたはそのリーダービューからテキストをコピーします。数ページなら十分です |
| オープンソースライブラリ | 自分のフェッチャー内でReadability、Trafilatura、MarkItDown、Crawl4AIを使います |
| WebリーダーAPI | `GET https://webreaderapi.com/api/v1/read?url=…`はMarkdown、タイトル、著者、日付を返します |
| 長さの制御 | WebReaderAPIで`max_chars`を使うか、変換後に自分でテキストを切り詰めます |
| JavaScriptページ | ヘッドレスブラウザが必要です。WebReaderAPIは必要なときに2クレジットでレンダリングします |

## どの方法を使うべきですか？

量と、どれだけのインフラを自分で運用したいかで選びます。

| 方法 | 向いている用途 | 自分で対応する範囲 |
|---|---|---|
| コピー＆ペースト | 数ページ、一度きりのプロンプト | 手作業でのクリーニング |
| コード内のライブラリ | 安定した量、完全な制御 | 取得、ブラウザ、robots.txt、PDF、リトライ |
| WebリーダーAPI | 多くのサイトを読むエージェントやパイプライン | リクエストと結果のみ |

ライブラリは制御を提供し、ページごとの料金はかかりません。コストは運用面です。JavaScriptページ用のヘッドレスブラウザ、robots.txtのチェック、文字セットとリダイレクトの処理、そしてPDF用の別経路が必要です。APIはそれらすべてを1回のHTTP呼び出しにまとめます。

## 優れたMarkdownが保持すべきもの、削除すべきものは何ですか？

優れたMarkdownは、意味を持つすべての要素を保持し、レイアウトやマーケティングのためだけに存在するものはすべて削除します。

- **見出しを保持**し、`#`、`##`、`###`として扱います。これによりモデルとチャンカーに各トピックの開始位置が伝わります。
- **リストと表を保持**し、Markdownのリストとパイプ表として扱います。これにより手順と数字が読みやすく保たれます。
- **リンクを保持**し、`[text](url)`として扱います。これによりアシスタントは出典を引用し、たどることができます。
- **コードブロックを保持**し、フェンスで囲みます。ページに言語が表示されている場合は言語も付けます。
- **メニュー、Cookie通知、広告、関連記事ウィジェット、フッターは削除**します。これらはすべてのページで繰り返され、検索・取得を汚染します。

実際のページをいくつか使って結果を確認してください。抽出ツールの結果が最も分かれるのは、フォーラム、長い表、複数の記事を含むページです。

## MarkdownはHTMLよりどれくらい小さくなりますか？

通常はるかに小さくなります。ページの装飾やマークアップが消えるためです。Cloudflareが2026年2月12日にMarkdown for Agents機能を開始したとき、その例のページはHTMLで16,180トークンからMarkdownで3,150トークンになり、約80%減りました。

実際の比率はサイトによって異なります。長い記事は、重いテンプレートに包まれた短いページに比べて、割合としてはあまり小さくなりません。予算を決める前に、自分のソースで測定してください。

## ページをモデルのトークン予算内に収めるにはどうすればよいですか？

モデルに届く前にテキストに上限を設け、残りを見出しに沿って分割します。WebReaderAPIでは、`max_chars`パラメータがMarkdownを1,000〜500,000文字の設定した長さで切り詰めます。`word_count`フィールドは記事全体がどれくらいの長さだったかを示すので、エージェントは残りを読む価値があるかどうかを判断できます。

検索・取得用途では、まず見出しで分割し、それから長いセクションを切ります。自分の見出しで始まるチャンクはトピックを保ちますが、長いページから文の途中で切られたチャンクは保ちません。

*Python：ページをMarkdownとして読み取り、見出しベースのチャンクに分割する*

```python
import os
import re

import requests

API = "https://webreaderapi.com/api/v1/read"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}


def page_to_chunks(url, max_chars=60000, chunk_len=1500):
    params = {"url": url, "format": "markdown", "max_chars": max_chars}
    resp = requests.get(API, headers=HEADERS, params=params, timeout=90)
    data = resp.json()
    if resp.status_code != 200:
        print("not read:", data["error"]["code"])
        return []
    chunks = []
    for section in re.split(r"\n(?=#{1,3} )", data["markdown"]):
        section = section.strip()
        while section:
            chunks.append(section[:chunk_len])
            section = section[chunk_len:]
    return [{"text": c, "source": data["final_url"], "title": data["title"]} for c in chunks]


if __name__ == "__main__":
    for chunk in page_to_chunks("https://example.com/guides/compost")[:3]:
        print(chunk["title"], "|", chunk["text"][:80])

```

## よくある失敗は何で、どう見つければよいですか？

変換の失敗のほとんどは4つの問題に集約されます。

- **出力が空。** ページがJavaScriptでコンテンツを構築しています。低い`word_count`を探し、ブラウザでページをレンダリングするか、`render=true`を設定してください。
- **結果にCookieや同意のテキストが含まれる。** 抽出ツールがバナーを残しています。メインコンテンツの抽出を選び、各結果の最初の行を確認してください。
- **表が欠けている。** 一部のサイトは表を画像やcanvas要素として描画しており、テキスト抽出ツールでは読めません。
- **ページの代わりに拒否。** サイトがrobots.txtでrobotsを拒否したか、リクエストを拒否しました。これを尊重し、所有者にアクセスを依頼するか、サイトが提供していれば公式APIやフィードを使用してください。

これらはいずれも、より速くリトライしても解決しません。エラーを読み、方法かソースを変えてください。

## WebページをMarkdownに変換：よくある質問

### LLMにはプレーンテキストよりMarkdownが優れていますか？

ほとんどのページでは、はい。Markdownは見出し、リスト、表、リンクを少ないトークンコストで保持するため、モデルは構造を見て出典を引用できます。プレーンテキストはわずかに短くなりますが、その構造を失います。

### 1ページだけでなく、Webサイト全体を変換できますか？

はい。クロールして各ページを変換します。WebReaderAPIの[crawl API](https://webreaderapi.com/ja/crawl-api/)は1つのジョブで両方を行います：1ジョブにつき1つのWebサイトを、最大10,000ページまでクロール。サイトマップ、robots.txt、Crawl-delayに従います。

### PDFも同じ方法で変換できますか？

はい、PDFのURLを同じエンドポイントに送信します。20 MB・100ページまでのPDFファイルをMarkdownに変換します。10ページ単位の開始ブロックごとに1クレジットです。

### ログインの背後にあるページはどうですか？

自分のものであって自分でエクスポートした場合を除き、第三者サービス経由で変換しないでください。WebReaderAPIは公開ページのみを読み取り、アカウントにログインすることはありません。

### これを無料で行う方法はありますか？

オープンソースライブラリは無料で使用でき、自分のマシンで実行できます。WebReaderAPIに無料プランはありません。最小のパックは$3.75で10,000ページ、KYC不要の暗号資産で支払います。

## ソース

1. [Markdown for Agentsの紹介](https://blog.cloudflare.com/markdown-for-agents/) — Cloudflare (2026-02-12)

---

WebReaderAPI: WebReaderAPIはAIエージェント向けのWebリーダーAPIで、あらゆる公開WebページをクリーンなMarkdownに変換します。暗号資産で支払い、本人確認書類のアップロードは不要です。$0.07/1Kページから購入できるプリペイドクレジットに有効期限はなく、robots.txtを尊重します。KYC不要 — 身分証もセルフィーも書類も不要。暗号資産で支払い。
