3 puntos por GN⁺ 2024-04-15 | 1 comentarios | Compartir por WhatsApp
  • MarkdownDown es una herramienta que convierte cualquier página web en un documento Markdown limpio
  • En el resultado de la conversión, permite descargar imágenes para guardarlas localmente y enlazarlas en el Markdown
  • Con la opción eliminar elementos no relacionados con el contenido, se pueden reducir los elementos ajenos al cuerpo principal
  • También ofrece la opción de aplicar GPT Filter al resultado en Markdown
  • Es útil para quienes quieren guardar el contenido de páginas web en Markdown o organizarlo junto con sus imágenes

Organizar páginas web en Markdown

  • MarkdownDown convierte páginas web en Markdown limpio
  • Durante la conversión, puede descargar imágenes e incluir en el resultado enlaces a imágenes locales

Opciones de conversión

  • Organización centrada en el contenido

    • La opción Remove non-content elements elimina los elementos que no forman parte del contenido
  • Manejo de imágenes

    • La opción Download images locally and link them guarda las imágenes localmente y las enlaza
  • Aplicar GPT Filter

    • La opción Apply GPT Filter on Markdown permite aplicar GPT Filter al resultado en Markdown

1 comentarios

 
GN⁺ 2024-04-15
Opiniones de Hacker News
  • Hay tres problemas distintos al convertir sitios web a Markdown: extraer todo el contenido de la página sin omisiones, eliminar anuncios y contenido secundario, y obtener el formato correcto de layout y secciones
    Para la extracción precisa de contenido y el formateo, las soluciones basadas en Trafilatura, Newspaper4k y python-readability son las que mejor funcionan por defecto; para una recopilación exhaustiva, suele encajar bien una combinación de servicios de scraping y Selenium
    Me da curiosidad qué hace distinto o mejor esta herramienta. Este campo llevaba un tiempo estancado, así que me gustaría escuchar qué aprendieron

    • En especial, el scraping exhaustivo es difícil en entornos donde no hay runtime de JavaScript o no se quiere usar uno
      Para extracción de contenido, el enfoque de la biblioteca de Postlight me pareció bastante limpio. Puntúa cada nodo HTML con heurísticas como longitud del texto, densidad de enlaces y clases CSS, y elige el nodo con mayor puntaje. Lo porté a Swift mientras hacía una app personal para leer después
      https://github.com/postlight/parser
    • Mi scraper de artículos ahora usa Playwright y un bloqueador de anuncios, luego ejecuta readability de Mozilla sobre la página, y un LLM revisa el resultado
      Si la revisión falla, recorta el contexto del HTML completo de la página, lo convierte a Markdown con Pandoc, y luego el LLM extrae el cuerpo desde el Markdown
  • Vercel, vaya; ahora, si llega una avalancha de tráfico, hay que tener cuidado con la factura. Espero que no lo estén usando de la forma en que Vercel te anima a seguir usándolo

    • Es un poco amargo cómo te empujan a usarlo en toda la documentación. A veces con un solo WebP basta
      Tal cual el meme del autobús: los felices son el usuario y Vercel, y el triste es la cartera
      Claro, salvo que necesites escalado y reducción dinámicos
    • En realidad aguantó bastante bien y el costo fue insignificante
      No hice nada especial para manejar el tráfico de HN; era simplemente una app Next.js básica
  • Ofrecer descarga de imágenes y filtrado basado en GPT es una buena idea
    El año pasado hice una herramienta similar, pero no tiene esas funciones: https://url2text.com/
    La UI puede ser lenta, pero en la página principal se puede ver un ejemplo de salida
    La API subyacente es la API de capturas de pantalla de sitios web de Urlbox; si se usa directamente, el rendimiento es mucho mejor. Puedes pedir Markdown de una vez junto con HTML renderizado con JavaScript, metadatos y capturas de pantalla: https://urlbox.com/extracting-text
    También se pueden guardar los resultados directamente en almacenamiento compatible con S3: https://urlbox.com/s3
    También se pueden recibir por webhooks: https://urlbox.com/webhooks
    En un proyecto paralelo estoy renderizando más de un millón de veces al mes con la función de Markdown de Urlbox, y ese Markdown es mucho mejor para embeddings y prompts
    Si quieres scrapear sitios web completos de esta manera, también vale la pena mirar la nueva herramienta de dctanner: https://usescraper.com/

    • Soy el fundador de https://usescraper.com. Ahora también hay una opción de scraping de URL única: https://docs.usescraper.com/api-reference/scraper/scrape
      Cuesta US$0.001 por página y usa un navegador Chrome headless. Los resultados son rápidos y solo pagas por lo que usas
    • Se ve bien, pero url2text no parece tener API, y urlbox no parece tener una opción para saltarse la captura de pantalla cuando solo quieres texto
      Si solo necesitas texto, parece bastante caro
  • Si un sitio web muestra un mensaje de cookies, esta herramienta parece quedarse atascada ahí y no logra parsear el contenido real
    Por ejemplo, probé con https://www.cnbc.com/ y solo generó en Markdown el mensaje de cookies y el texto legal alrededor

    • No es fácil esquivar eso, pero puede funcionar de esta manera: https://url2text.com/u/wYVake
      Tuvimos suerte de poder construirlo sobre una API madura que ya maneja muchos edge cases derivados de distintos tipos de renderizado de páginas
  • Con solo htmltidy y la conversión HTML→Markdown de Pandoc ya se podía hacer algo bastante útil
    http://www.html-tidy.org/
    https://pandoc.org/

    • No conocía tidy, pero se ve prometedor
      Me atrae y a la vez me da miedo pasarle todo el HTML de la plantilla final para encontrar estructuras inválidas que queden. Según qué tan estructurados sean los arreglos, quizá podría convertirse en una suite de pruebas
  • Yo también hice algo muy parecido, smort.io. Si antepones smort.io/ a cualquier URL de un artículo, puedes editarlo, anotarlo y compartirlo fácilmente
    También funciona con papers de ArXiv
    El post Show HN de Smort está aquí: https://news.ycombinator.com/item?id=30673502

  • Lo probé con una página de marketing compleja y la manejó muy bien
    Si se puede compartir, me da curiosidad cuánta carga le genera al host. Quisiera saber si es algo que se puede seguir operando gratis, o si al final va a terminar siendo poco rentable

    • Como levanta una instancia de Chrome headless, es algo pesado. Voy a revisar optimizaciones para esa parte
      Fuera de eso, GPT-4 es caro, pero hasta ahora el costo ha sido insignificante, así que tengo esperanzas. Creo que se podrá mantener por mucho tiempo
  • Es uno de esos casos en los que no se necesita IA. Hay algoritmos que funcionan muy bien para extraer contenido de una página, y una implementación es https://github.com/buriy/python-readability

    • Recuerdo que, cuando comparé herramientas de eliminación de boilerplate hace unos años, jusText daba los mejores resultados con la configuración predeterminada
      También probé readability y algunas otras bibliotecas. Me da curiosidad saber cuál es el estado del arte hoy
    • Aquí la IA es opcional. Se usa readability para limpiar el HTML antes de convertirlo a Markdown
    • La última vez que usé readability funcionaba bien con artículos, pero sufría con otros tipos de páginas
      Terminaba eliminando mucho más contenido del que quería
    • Me da curiosidad cómo se podría lograr lo mismo aquí solo con esa herramienta, sin IA
    • Sinceramente, esperaba que casi todo fuera magia negra, pero el núcleo del proyecto parece ser un conjunto de expresiones regulares que seguro costó mucho construir. Genial
  • El siempre sorprendente Pandoc(https://pandoc.org/) hace esto muy bien. De hecho, también soporta prácticamente cualquier otro formato de documento

    • De acuerdo. Pandoc es una de las herramientas más útiles que existen y aun así casi no se menciona
      Es sorprendente, fácil de usar y funciona bien. Salen con frecuencia herramientas nuevas en este campo, pero creo que para hacerme usar algo que no sea Pandoc tendría que tener una función realmente única y convincente, o estar muy optimizada para un caso de uso específico
  • Genial. Me gustaría que hubiera una extensión de navegador que aplicara esto a todas las páginas que leo y las guardara en algún lugar