Uji
10.000 halaman
US$3,75
US$0,38/1K halaman
- Coba dengan URL asli Anda
- API yang sama dengan paket terbesar
- Kredit tidak pernah kedaluwarsa
Use case · migrasi dan ekspor · /crawl
Pindah ke static site generator, platform dokumentasi, atau knowledge base sering dimulai dengan satu pertanyaan: bagaimana cara mengeluarkan halaman saya sebagai Markdown yang bersih? Crawl melakukannya dalam satu job, dengan judul, tanggal, dan URL tetap tersimpan di front matter.
Jawaban singkat
Bagaimana cara mengubah seluruh website saya menjadi Markdown?
Crawl situs Anda, baca konten utama setiap halaman sebagai Markdown, dan tulis satu file .md per halaman dengan judul, URL, dan tanggalnya di front matter. WebReaderAPI melakukan crawl hingga 10.000 halaman per job, mengikuti sitemap dan robots.txt Anda, dan menagih satu kredit per halaman dari US$0,07/1K halaman per Oktober 2026. Skrip Python di bawah ini menulis file-file tersebut. Tanpa KYC; bayar dengan kripto.
| Endpoint | POST https://webreaderapi.com/api/v1/crawl, hasil dari GET https://webreaderapi.com/api/v1/jobs/{job_id} |
|---|---|
| Cakupan | Crawl satu situs web per job, hingga 10.000 halaman, mengikuti sitemap, robots.txt dan Crawl-delay-nya |
| Per halaman | Markdown konten utama, plus judul, deskripsi, penulis, tanggal, dan bahasa |
| Seluruh halaman | main_content=false mempertahankan navigasi dan footer saat Anda membutuhkannya |
| robots.txt Anda | Harus mengizinkan WebReaderAPI untuk halaman yang Anda ekspor |
| Harga | US$3,75 seharga 10.000 halaman; kredit tidak pernah kedaluwarsa |
Setiap kali konten harus keluar dari sistem yang merendernya. Kasus yang umum:
Dalam setiap kasus Anda menginginkan kata-katanya dan strukturnya, bukan tema di sekelilingnya.
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)
Cerminkan path URL pada path file, seperti yang dilakukan skrip: /guides/setup/ menjadi export/guides/setup.md. Simpan URL asli di front matter sebagai source, agar Anda dapat menyiapkan redirect setelah migrasi dan memeriksa bahwa tidak ada yang hilang.
Tautan di dalam Markdown masih mengarah ke URL Anda saat ini. Setelah pemindahan, ganti domain atau awalan path dalam satu kali proses, lalu uji sampel halaman. Tabel dan blok kode tetap sebagai Markdown, sehingga sebagian besar static generator merendernya tanpa perubahan.
Izinkan token kami selama proses ekspor. WebReaderAPI hanya membaca apa yang diizinkan robots.txt untuk WebReaderAPI atau untuk semua robot, termasuk di situs Anda sendiri. Tambahkan grup seperti User-agent: WebReaderAPI dengan Allow: /, jalankan crawl, lalu hapus lagi jika Anda mau.
Halaman crawler kami menunjukkan baris persisnya dan User-Agent yang akan muncul di log server Anda. Halaman yang tetap dilarang dilewati dan tidak dikenai biaya.
Satu kredit per halaman, dua untuk halaman yang butuh browser untuk menampilkan teksnya. Situs 2.000 halaman yang dirender di server memakan 2.000 kredit sekali; situs yang sama sebagai aplikasi JavaScript bisa memakan hingga 4.000. Keduanya muat dalam 10.000 halaman untuk US$3,75, per Oktober 2026.
Situs 50.000 halaman membutuhkan beberapa job, dipecah per bagian dengan include_paths, dan muat dalam 100.000 halaman (US$21,75). Kredit yang tersisa setelah ekspor tetap di akun Anda untuk penyegaran berikutnya.
Hitung halaman Anda, gandakan jumlahnya jika situs memerlukan JavaScript untuk merender, lalu pilih paket di atasnya. Kredit tidak pernah kedaluwarsa.
10.000 halaman
US$3,75
US$0,38/1K halaman
50.000 halaman
US$14,25
US$0,28/1K halaman
100.000 halaman
US$21,75
US$0,22/1K halaman
Di setiap paket: Ekstraksi konten utama · Rendering JavaScript saat diperlukan · Halaman gagal dan ditolak tidak ditagih · Kredit tidak pernah kedaluwarsa
Ya. Atur main_content=false di opsi crawl dan setiap file berisi halaman lengkap yang dikonversi ke Markdown. Sebagian besar migrasi lebih memilih konten utama saja, karena tema baru menyediakan navigasinya sendiri.
Tidak. Dengan include_images=true, tautan gambar tetap ada di Markdown beserta alt text-nya; unduh file-nya sendiri dengan skrip Anda jika migrasi membutuhkannya.
Hanya halaman publik yang diizinkan robots.txt-nya, dan hanya untuk penggunaan yang diizinkan oleh ketentuannya dan hukum. Untuk migrasi atau backup, ekspor situs Anda sendiri atau situs yang pemiliknya setuju.
Hingga 10.000 halaman per job crawl, dalam satu domain. Pecah situs yang lebih besar per bagian dengan include_paths dan jalankan beberapa job.
Mulai dari US$0,07/1K halaman · tanpa KYC
Dapatkan API key