Prueba
10.000 páginas
3,75 US$
0,38 US$/1K páginas
- Pruébalo con tus URLs reales
- La misma API que el pack más grande
- Los créditos nunca caducan
Caso de uso · migraciones y exportaciones · /crawl
Pasar a un generador de sitios estáticos, a una plataforma de documentación o a una base de conocimiento suele empezar con una pregunta: ¿cómo saco mis páginas como Markdown limpio? Un rastreo lo hace en una sola tarea, con títulos, fechas y URL guardados en el front matter.
Respuesta rápida
¿Cómo convierto todo mi sitio web a Markdown?
Rastrea tu sitio, lee el contenido principal de cada página como Markdown y escribe un archivo .md por página con su título, URL y fecha en el front matter. WebReaderAPI rastrea hasta 10.000 páginas por tarea, sigue tu sitemap y robots.txt, y cobra un crédito por página desde 0,07 US$/1K páginas a fecha de octubre de 2026. Un script de Python más abajo escribe los archivos. Sin KYC; paga con criptomonedas.
| Endpoint | POST https://webreaderapi.com/api/v1/crawl, resultados de GET https://webreaderapi.com/api/v1/jobs/{job_id} |
|---|---|
| Alcance | Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay |
| Por página | Markdown del contenido principal, más título, descripción, autor, fecha e idioma |
| Páginas completas | main_content=false conserva la navegación y los pies de página cuando los necesitas |
| Tu robots.txt | Debe permitir WebReaderAPI para las páginas que exportas |
| Precio | 3,75 US$ por 10.000 páginas; los créditos no caducan |
Siempre que el contenido tenga que salir del sistema que lo renderiza. Casos habituales:
En cada caso quieres las palabras y la estructura, no el tema que las rodea.
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)
Refleja la ruta de la URL en la ruta del archivo, como hace el script: /guides/setup/ se convierte en export/guides/setup.md. Conserva la URL original en el front matter como source, para que puedas configurar redirecciones tras la migración y comprobar que no se perdió nada.
Los enlaces dentro del Markdown siguen apuntando a tus URL actuales. Tras el traslado, reemplaza el dominio o el prefijo de ruta en una sola pasada y luego prueba una muestra de páginas. Las tablas y los bloques de código se mantienen como Markdown, así que la mayoría de los generadores estáticos los renderizan sin cambios.
Permite nuestro token durante la exportación. WebReaderAPI lee solo lo que robots.txt permite para WebReaderAPI o para todos los robots, incluido en tu propio sitio. Añade un grupo como User-agent: WebReaderAPI con Allow: /, ejecuta el rastreo y luego elimínalo si quieres.
Nuestra página del rastreador muestra las líneas exactas y el User-Agent que mostrarán los registros de tu servidor. Las páginas que sigan sin permitirse se omiten y no se cobran.
Un crédito por página, dos en las páginas que necesitan un navegador para mostrar su texto. Un sitio de 2.000 páginas renderizado en el servidor cuesta 2.000 créditos una vez; el mismo sitio como aplicación JavaScript puede costar hasta 4.000. Ambos caben en 10.000 páginas por 3,75 US$, a fecha de octubre de 2026.
Un sitio de 50.000 páginas necesita varias tareas, divididas por sección con include_paths, y cabe en 100.000 páginas (21,75 US$). Los créditos que queden tras la exportación permanecen en tu cuenta para futuras actualizaciones.
Cuenta tus páginas, duplica el número si el sitio necesita JavaScript para renderizar y elige el pack superior. Los créditos nunca caducan.
10.000 páginas
3,75 US$
0,38 US$/1K páginas
50.000 páginas
14,25 US$
0,28 US$/1K páginas
100.000 páginas
21,75 US$
0,22 US$/1K páginas
En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan
Sí. Activa main_content=false en las opciones de rastreo y cada archivo contendrá la página completa convertida a Markdown. La mayoría de las migraciones prefieren solo el contenido principal, porque el nuevo tema ya aporta su propia navegación.
No. Con include_images=true, los enlaces de las imágenes se quedan en el Markdown con su texto alternativo; descarga los archivos con tu propio script si la migración los necesita.
Solo páginas públicas que permita su robots.txt, y solo para usos que permitan sus términos y la ley. Para una migración o una copia de seguridad, exporta tus propios sitios o sitios cuyo propietario haya dado su consentimiento.
Hasta 10 000 páginas por trabajo de rastreo, dentro de un mismo dominio. Divide los sitios más grandes por secciones con include_paths y ejecuta varios trabajos.
Desde 0,07 US$/1K páginas · sin KYC
Obtén una clave API