Test
10.000 pagine
3,75 USD
0,38 USD/1K pagine
- Provalo sui tuoi URL reali
- La stessa API del pack più grande
- I crediti non scadono mai
Caso d'uso · migrazioni ed export · /crawl
Passare a un generatore di siti statici, a una piattaforma per la documentazione o a una knowledge base spesso inizia con una domanda: come estraggo le mie pagine come Markdown pulito? Un crawl lo fa in un solo job, con titoli, date e URL conservati nel front matter.
Risposta rapida
Come converto tutto il mio sito web in Markdown?
Esegui il crawling del tuo sito, leggi il contenuto principale di ogni pagina come Markdown e scrivi un file .md per pagina con titolo, URL e data nel front matter. WebReaderAPI esegue il crawling fino a 10.000 pagine per job, segue la tua sitemap e robots.txt e addebita un credito per pagina da 0,07 USD/1K pagine a partire da ottobre 2026. Lo script Python qui sotto scrive i file. Senza KYC; paghi in criptovalute.
| Endpoint | POST https://webreaderapi.com/api/v1/crawl, risultati da GET https://webreaderapi.com/api/v1/jobs/{job_id} |
|---|---|
| Ambito | Crawling di un sito web per job, fino a 10.000 pagine, seguendo la sua sitemap, il suo robots.txt e il suo Crawl-delay |
| Per pagina | Markdown del contenuto principale, più titolo, descrizione, autore, data e lingua |
| Pagine intere | main_content=false mantiene navigazione e footer quando ti servono |
| Il tuo robots.txt | Deve consentire WebReaderAPI per le pagine che esporti |
| Prezzo | 3,75 USD per 10.000 pagine; i crediti non scadono mai |
Ogni volta che il contenuto deve uscire dal sistema che lo renderizza. Casi comuni:
In ogni caso vuoi le parole e la struttura, non il tema intorno.
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)
Rispecchia il percorso dell'URL nel percorso del file, come fa lo script: /guides/setup/ diventa export/guides/setup.md. Conserva l'URL originale nel front matter come source, così puoi impostare i redirect dopo la migrazione e verificare che nulla sia andato perso.
I link dentro il Markdown puntano ancora ai tuoi URL attuali. Dopo lo spostamento, sostituisci il dominio o il prefisso del percorso in un solo passaggio, poi testa un campione di pagine. Tabelle e blocchi di codice restano Markdown, quindi la maggior parte dei generatori statici li renderizza senza modifiche.
Consenti il nostro token per la durata dell'export. WebReaderAPI legge solo ciò che robots.txt permette per WebReaderAPI o per tutti i robot, anche sul tuo sito. Aggiungi un gruppo come User-agent: WebReaderAPI con Allow: /, esegui il crawl, poi rimuovilo se vuoi.
La nostra pagina del crawler mostra le righe esatte e lo User-Agent che apparirà nei log del tuo server. Le pagine che restano vietate vengono saltate e non vengono addebitate.
Un credito per pagina, due per le pagine che richiedono un browser per mostrare il loro testo. Un sito da 2.000 pagine renderizzato sul server costa 2.000 crediti una volta; lo stesso sito come app JavaScript può costare fino a 4.000. Entrambi stanno in 10.000 pagine per 3,75 USD, a partire da ottobre 2026.
Un sito da 50.000 pagine richiede più job, divisi per sezione con include_paths, e sta in 100.000 pagine (21,75 USD). I crediti che restano dopo l'export rimangono sul tuo account per gli aggiornamenti successivi.
Conta le tue pagine, raddoppia il conteggio se il sito richiede JavaScript per il rendering e scegli il pack sopra quello. I crediti non scadono mai.
10.000 pagine
3,75 USD
0,38 USD/1K pagine
50.000 pagine
14,25 USD
0,28 USD/1K pagine
100.000 pagine
21,75 USD
0,22 USD/1K pagine
In ogni piano: Estrarre il contenuto principale · JavaScript rendering quando serve · Le pagine non riuscite e rifiutate non vengono addebitate · I crediti non scadono mai
Sì. Imposta main_content=false nelle opzioni di crawling e ogni file contiene la pagina completa convertita in Markdown. La maggior parte delle migrazioni preferisce solo il contenuto principale, perché il nuovo tema fornisce la propria navigazione.
No. Con include_images=true, i link alle immagini restano nel Markdown con il loro testo alternativo; scarica i file stessi con il tuo script se la migrazione ne ha bisogno.
Solo le pagine pubbliche che il suo robots.txt consente, e solo per usi che i suoi termini e la legge permettono. Per una migrazione o un backup, esporta i tuoi siti o siti il cui proprietario è d'accordo.
Fino a 10.000 pagine per job di crawling, all'interno di un dominio. Suddividi i siti più grandi per sezione con include_paths ed esegui più job.
Da 0,07 USD/1K pagine · senza KYC
Ottieni una chiave API