Kiểm tra
10.000 trang
3,75 US$
0,38 US$/1K trang
- Dùng thử trên URL thật của bạn
- Cùng API như gói lớn nhất
- Credit không bao giờ hết hạn
Trường hợp sử dụng · di chuyển và xuất · /crawl
Chuyển sang một static site generator, một nền tảng tài liệu hoặc một knowledge base thường bắt đầu bằng một câu hỏi: làm sao lấy các trang của tôi ra dưới dạng Markdown sạch? Một lần crawl làm được điều đó trong một job, giữ tiêu đề, ngày và URL trong front matter.
Câu trả lời nhanh
Làm thế nào để chuyển toàn bộ trang web của tôi sang Markdown?
Crawl trang web của bạn, đọc nội dung chính của từng trang dưới dạng Markdown, và ghi một tệp .md cho mỗi trang với tiêu đề, URL và ngày trong front matter. WebReaderAPI crawl tối đa 10.000 trang mỗi job, tuân theo sitemap và robots.txt của bạn, và tính một credit mỗi trang từ 0,07 US$/1K trang tính đến tháng 10 năm 2026. Một script Python bên dưới sẽ ghi các tệp. Không cần KYC; thanh toán bằng crypto.
| Endpoint | POST https://webreaderapi.com/api/v1/crawl, kết quả từ GET https://webreaderapi.com/api/v1/jobs/{job_id} |
|---|---|
| Phạm vi | Crawl một website mỗi job, tối đa 10.000 trang, theo sitemap, robots.txt và Crawl-delay của trang |
| Mỗi trang | Markdown của nội dung chính, cùng tiêu đề, mô tả, tác giả, ngày và ngôn ngữ |
| Toàn bộ trang | main_content=false giữ navigation và footer khi bạn cần |
| robots.txt của bạn | Phải cho phép WebReaderAPI đối với các trang bạn xuất |
| Giá | 3,75 US$ cho 10.000 trang; credit không bao giờ hết hạn |
Mỗi khi nội dung phải rời khỏi hệ thống hiển thị nó. Các trường hợp phổ biến:
Trong mỗi trường hợp bạn cần các từ và cấu trúc, không phải theme xung quanh chúng.
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)
Sao chép đường dẫn URL vào đường dẫn tệp, như script làm: /guides/setup/ trở thành export/guides/setup.md. Giữ URL gốc trong front matter dưới dạng source, để bạn có thể thiết lập redirect sau khi di chuyển và kiểm tra rằng không mất mát gì.
Các liên kết bên trong Markdown vẫn trỏ tới các URL hiện tại của bạn. Sau khi chuyển, hãy thay domain hoặc tiền tố đường dẫn trong một lần, rồi kiểm thử một mẫu các trang. Bảng và khối mã vẫn ở dạng Markdown, nên hầu hết static generator hiển thị chúng mà không cần thay đổi.
Hãy cho phép token của chúng tôi trong thời gian xuất. WebReaderAPI chỉ đọc những gì robots.txt cho phép đối với WebReaderAPI hoặc đối với tất cả robot, kể cả trên trang của chính bạn. Thêm một nhóm như User-agent: WebReaderAPI với Allow: /, chạy crawl, rồi xóa nếu bạn muốn.
Trang crawler của chúng tôi hiển thị các dòng chính xác và User-Agent mà log máy chủ của bạn sẽ hiển thị. Những trang vẫn bị chặn sẽ bị bỏ qua và không bị tính phí.
Một credit mỗi trang, hai credit cho các trang cần trình duyệt để hiển thị văn bản. Một trang web 2.000 trang render trên máy chủ tốn 2.000 credit một lần; cùng trang đó dưới dạng ứng dụng JavaScript có thể tốn tới 4.000. Cả hai đều vừa với 10.000 trang với 3,75 US$, tính đến tháng 10 năm 2026.
Một trang web 50.000 trang cần nhiều job, chia theo phần với include_paths, và vừa với 100.000 trang (21,75 US$). Credit còn lại sau khi xuất vẫn ở trong tài khoản của bạn cho các lần làm mới sau.
Đếm số trang của bạn, nhân đôi nếu trang cần JavaScript để render, rồi chọn gói cao hơn mức đó. Credit không bao giờ hết hạn.
10.000 trang
3,75 US$
0,38 US$/1K trang
50.000 trang
14,25 US$
0,28 US$/1K trang
100.000 trang
21,75 US$
0,22 US$/1K trang
Trong mọi gói: Trích xuất nội dung chính · Render JavaScript khi cần · Trang thất bại và bị từ chối không bị tính phí · Credit không bao giờ hết hạn
Có. Đặt main_content=false trong tùy chọn crawl và mỗi file sẽ chứa toàn bộ trang đã được chuyển sang Markdown. Hầu hết các đợt migration chỉ muốn nội dung chính, vì theme mới đã có navigation riêng.
Không. Với include_images=true, liên kết hình ảnh vẫn nằm trong Markdown kèm alt text; hãy tải chính các file đó bằng script của bạn nếu migration cần đến chúng.
Chỉ những trang công khai mà robots.txt của trang cho phép, và chỉ cho những mục đích mà điều khoản của trang và pháp luật cho phép. Đối với migration hoặc sao lưu, hãy xuất các trang của chính bạn hoặc các trang mà chủ sở hữu đã đồng ý.
Tối đa 10.000 trang cho mỗi job crawl, trong phạm vi một domain. Hãy chia các trang web lớn hơn theo từng phần bằng include_paths và chạy nhiều job.
Từ 0,07 US$/1K trang · không cần KYC
Lấy khóa API