Risposta rapida
Come converto una pagina web in Markdown per un LLM?
Recupera la pagina, mantieni solo il contenuto principale, poi trasforma intestazioni, elenchi, tabelle e link in Markdown e limita la lunghezza al budget del tuo modello. Puoi farlo a mano, con librerie open-source o con una sola chiamata API: WebReaderAPI restituisce il Markdown e i metadati per un credito per pagina, da 0,07 USD/1K pagine a ottobre 2026. Senza KYC; paghi in criptovalute.
Tre modi per ottenere Markdown da una pagina web
| A mano | Copia il testo dal browser o dalla sua modalità lettura; va bene per qualche pagina |
|---|---|
| Librerie open-source | Readability, Trafilatura, MarkItDown o Crawl4AI dentro il tuo fetcher |
| Un'API web reader | GET https://webreaderapi.com/api/v1/read?url=… restituisce Markdown, titolo, autore e data |
| Controllo della lunghezza | max_chars su WebReaderAPI, oppure tagli tu il testo dopo la conversione |
| Pagine JavaScript | Serve un browser headless; WebReaderAPI le renderizza quando necessario, per 2 crediti |
Quale metodo devo usare?
Scegli in base al volume e a quanta infrastruttura vuoi gestire.
| Metodo | Adatto a | Cosa gestisci tu |
|---|---|---|
| Copia e incolla | Poche pagine, un prompt una tantum | Pulizia manuale |
| Libreria nel tuo codice | Volumi costanti, controllo totale | Fetching, browser, robots.txt, PDF, retry |
| API web reader | Agenti e pipeline che leggono molti siti | Solo la richiesta e il risultato |
Le librerie ti danno controllo e nessun costo per pagina. Il costo è operativo: un browser headless per le pagine JavaScript, un controllo di robots.txt, la gestione di set di caratteri e redirect, e un percorso separato per i PDF. Un'API racchiude tutto questo in una singola chiamata HTTP.
Cosa deve conservare un buon Markdown e cosa deve scartare?
Un buon Markdown conserva ogni elemento che porta significato e scarta tutto ciò che esiste solo per il layout o per il marketing.
- Conserva i titoli come
#,##e###: indicano al modello, e al tuo chunker, dove inizia ogni argomento. - Conserva liste e tabelle come liste Markdown e pipe table, così passaggi e numeri restano leggibili.
- Conserva i link come
[text](url): permettono a un assistente di citare e seguire le fonti. - Conserva i blocchi di codice delimitati, con il linguaggio quando la pagina lo mostra.
- Scarta menu, avvisi sui cookie, annunci, widget degli articoli correlati e footer: si ripetono su ogni pagina e sporcano il retrieval.
Verifica il risultato su alcune delle tue pagine reali. Gli strumenti di estrazione divergono soprattutto su forum, tabelle lunghe e pagine con più articoli.
Quanto è più piccolo il Markdown rispetto all'HTML?
Di solito molto più piccolo, perché l'arredamento della pagina e il markup spariscono. Quando Cloudflare ha lanciato la sua funzione Markdown for Agents il 12 febbraio 2026, la sua pagina di esempio è passata da 16.180 token come HTML a 3.150 token come Markdown, circa l'80% in meno.
Il tuo rapporto dipende dal sito. Gli articoli lunghi si riducono meno, in percentuale, rispetto alle pagine brevi avvolte in template pesanti. Misura sulle tue fonti prima di dimensionare un budget.
Come mantengo una pagina entro il budget di token del mio modello?
Limita il testo prima che raggiunga il modello, poi suddividi ciò che resta lungo i titoli. Con WebReaderAPI, il parametro max_chars taglia il Markdown a una lunghezza impostata, tra 1.000 e 500.000 caratteri. Il campo word_count ti dice quanto era lungo l'articolo completo, così un agente può decidere se vale la pena leggere il resto.
Per il retrieval, suddividi prima sui titoli e solo dopo taglia le sezioni lunghe. Un chunk che inizia con il proprio titolo mantiene il suo argomento; un chunk tagliato a metà frase da una pagina lunga no.
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])
Cosa va storto di solito e come me ne accorgo?
Quattro problemi spiegano la maggior parte delle conversioni sbagliate:
- Output vuoto. La pagina costruisce il contenuto con JavaScript. Cerca un
word_countbasso; renderizza la pagina in un browser, oppure impostarender=true. - Testo di cookie o consenso nel risultato. L'estrattore ha tenuto un banner. Preferisci l'estrazione del contenuto principale e controlla le prime righe di ogni risultato.
- Tabelle mancanti. Alcuni siti disegnano le tabelle come immagini o elementi canvas; nessun estrattore di testo può leggerle.
- Un rifiuto invece di una pagina. Il sito ha vietato gli accessi in robots.txt o ha rifiutato la richiesta. Rispettalo: chiedi l'accesso al proprietario, oppure usa un'API o un feed ufficiale se il sito ne offre uno.
Nessuno di questi si risolve riprovando più in fretta. Leggi l'errore, poi cambia il metodo o la fonte.
Da pagina web a Markdown: domande frequenti
Il Markdown è meglio del testo semplice per un LLM?
Per la maggior parte delle pagine, sì. Il Markdown conserva titoli, liste, tabelle e link a un costo contenuto in token, così il modello vede la struttura e può citare le fonti. Il testo semplice è leggermente più corto ma perde quella struttura.
Posso convertire un intero sito web, non solo una pagina?
Sì. Fai il crawling e converti ogni pagina. L'API di crawling di WebReaderAPI fa entrambe le cose in un unico job: 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.
Posso convertire un PDF allo stesso modo?
Sì, inviando l'URL del PDF allo stesso endpoint. I file PDF fino a 20 MB e 100 pagine vengono convertiti in Markdown, a 1 credito per ogni blocco di 10 pagine iniziato.
E le pagine dietro un login?
Non convertirle tramite un servizio di terze parti, a meno che non siano tue e tu le abbia esportate personalmente. WebReaderAPI legge solo pagine pubbliche e non accede mai agli account.
Esiste un modo gratuito per farlo?
Le librerie open source sono gratuite da usare e girano sulle tue macchine. WebReaderAPI non ha un piano gratuito; il suo pack più piccolo è 10.000 pagine per 3,75 USD, pagato in criptovalute senza KYC.
Fonti (1)
- Presentiamo Markdown for Agents — Cloudflare (2026-02-12)