Resposta rápida
Como faço para converter uma página web em Markdown para um LLM?
Busque a página, mantenha apenas o conteúdo principal e então transforme títulos, listas, tabelas e links em Markdown e limite o tamanho ao orçamento do seu modelo. Você pode fazer isso à mão, com bibliotecas de código aberto ou com uma chamada de API: WebReaderAPI retorna o Markdown e os metadados por um crédito por página, a partir de US$ 0,07/1K páginas em outubro de 2026. Sem KYC; pague com cripto.
Três formas de obter Markdown de uma página web
| À mão | Copie o texto do navegador ou da visualização de leitura; serve para poucas páginas |
|---|---|
| Bibliotecas de código aberto | Readability, Trafilatura, MarkItDown ou Crawl4AI dentro do seu próprio fetcher |
| Uma API de leitura de páginas web | GET https://webreaderapi.com/api/v1/read?url=… retorna Markdown, título, autor e data |
| Controle de comprimento | max_chars no WebReaderAPI, ou corte o texto você mesmo após a conversão |
| Páginas com JavaScript | Precisa de um navegador headless; o WebReaderAPI as renderiza quando necessário, por 2 créditos |
Qual método devo usar?
Escolha pelo volume e por quanta infraestrutura você quer manter.
| Método | Bom para | Você cuida de |
|---|---|---|
| Copiar e colar | Algumas páginas, um prompt pontual | Limpar manualmente |
| Biblioteca no seu código | Volumes constantes, controle total | Buscar, navegadores, robots.txt, PDFs, novas tentativas |
| API de leitor web | Agentes e pipelines que leem muitos sites | Apenas a requisição e o resultado |
Bibliotecas dão controle e nenhuma taxa por página. O custo é operacional: um navegador headless para páginas com JavaScript, uma verificação de robots.txt, tratamento de conjunto de caracteres e redirecionamentos, e um caminho separado para PDFs. Uma API junta tudo isso em uma única chamada HTTP.
O que um bom Markdown deve manter e o que deve descartar?
Um bom Markdown mantém todo elemento que carrega significado e descarta tudo que existe apenas para layout ou marketing.
- Mantenha os títulos como
#,##e###: eles mostram ao modelo, e ao seu chunker, onde cada tópico começa. - Mantenha listas e tabelas como listas Markdown e tabelas com pipe, para que passos e números fiquem legíveis.
- Mantenha os links como
[text](url): eles permitem que um assistente cite e siga as fontes. - Mantenha os blocos de código cercados, com a linguagem quando a página a mostra.
- Descarte menus, avisos de cookies, anúncios, widgets de posts relacionados e rodapés: eles se repetem em toda página e poluem a recuperação.
Verifique o resultado em algumas das suas páginas reais. As ferramentas de extração mais divergem em fóruns, tabelas longas e páginas com vários artigos.
Quanto menor o Markdown é em relação ao HTML?
Normalmente bem menor, porque os elementos de página e a marcação desaparecem. Quando o Cloudflare lançou seu recurso Markdown for Agents em 12 de fevereiro de 2026, a página de exemplo passou de 16.180 tokens em HTML para 3.150 tokens em Markdown, cerca de 80% menos.
Sua própria proporção depende do site. Artigos longos encolhem menos, em porcentagem, do que páginas curtas envoltas em templates pesados. Meça nas suas fontes antes de dimensionar um orçamento.
Como mantenho uma página dentro do orçamento de tokens do meu modelo?
Limite o texto antes que ele chegue ao modelo e depois divida o que sobrar pelos títulos. Com o WebReaderAPI, o parâmetro max_chars corta o Markdown em um comprimento definido, entre 1.000 e 500.000 caracteres. O campo word_count informa qual era o comprimento do artigo completo, para que um agente decida se vale a pena ler o restante.
Para recuperação, divida primeiro pelos títulos e só então corte as seções longas. Um chunk que começa com seu próprio título mantém o tópico; um chunk cortado no meio de uma frase de uma página longa não.
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])
O que costuma dar errado, e como identifico isso?
Quatro problemas respondem pela maioria das conversões ruins:
- Saída vazia. A página constrói o conteúdo com JavaScript. Procure um
word_countbaixo; renderize a página em um navegador ou definarender=true. - Texto de cookie ou consentimento no resultado. O extrator manteve um banner. Prefira a extração do conteúdo principal e confira as primeiras linhas de cada resultado.
- Tabelas ausentes. Alguns sites desenham tabelas como imagens ou elementos canvas; nenhum extrator de texto consegue lê-las.
- Uma recusa em vez de uma página. O site desautorizou o robots no robots.txt ou recusou a requisição. Respeite: peça acesso ao proprietário ou use uma API oficial ou feed, se o site oferecer um.
Nenhum desses problemas se resolve tentando de novo mais rápido. Leia o erro e depois mude o método ou a fonte.
Conversão de página web em Markdown: perguntas frequentes
O Markdown é melhor que texto simples para um LLM?
Para a maioria das páginas, sim. O Markdown mantém títulos, listas, tabelas e links com um custo baixo de tokens, então o modelo consegue ver a estrutura e citar fontes. O texto simples é um pouco mais curto, mas perde essa estrutura.
Posso converter um site inteiro, não só uma página?
Sim. Faça o rastreamento (crawl) e converta cada página. A API de rastreamento do WebReaderAPI faz as duas coisas em um só job: Rastreie um site por job, até 10.000 páginas, seguindo o sitemap, o robots.txt e o Crawl-delay do site.
Posso converter um PDF da mesma forma?
Sim, enviando a URL do PDF para o mesmo endpoint. Arquivos PDF de até 20 MB e 100 páginas são convertidos em Markdown, a 1 crédito por bloco iniciado de 10 páginas.
E as páginas atrás de um login?
Não as converta por meio de um serviço de terceiros, a menos que sejam suas e você mesmo as tenha exportado. O WebReaderAPI lê apenas páginas públicas e nunca faz login em contas.
Existe uma forma gratuita de fazer isso?
Bibliotecas de código aberto são gratuitas para usar e rodam nas suas próprias máquinas. O WebReaderAPI não tem plano gratuito; seu menor pacote é 10.000 páginas por US$ 3,75, pago com cripto e sem KYC.
Fontes (1)
- Apresentando o Markdown for Agents — Cloudflare (2026-02-12)