El otro dia publique sobre spegel.

Actualmente estoy usando esto: w3m -dump news.ycombinator.com | aichat "contame las noticias mas relevantes" aichat lo uso con el modelo de deepseek.

O navego con w3m guardo el texto con S y luego cat nombre_archivo | aichat "explicame y haceme un resumen de esto"

Pregunte a Claude AI y me recomendo esto

Buena pregunta. Tu enfoque con w3m -dump funciona, pero tiene problemas: manda todo el ruido del HTML (menús, footers, publicidades) al LLM, desperdiciando tokens y contexto. Hay varias alternativas mejores:


El problema con w3m -dump

w3m convierte HTML a texto plano, pero sin filtrar el contenido irrelevante. Para HN funciona bastante bien porque el sitio es simple, pero en sitios complejos el resultado es ruidoso.


Alternativas, de mejor a peor para este uso

1. curl + lynx (similar a w3m, más control)

curl -sL https://news.ycombinator.com | lynx -dump -stdin | aichat "resumí las noticias"

lynx -dump suele producir texto más limpio que w3m.


2. readable — extrae solo el contenido principal (Mozilla Readability)

sudo npm install -g readability-cli
curl -sL https://news.ycombinator.com | readable | aichat "resumí las noticias"

Usa el mismo algoritmo que el “Modo lectura” de Firefox: elimina nav, ads, footers y deja solo el artículo/contenido. Ideal para artículos individuales.


3. pandoc — convierte HTML a Markdown limpio

curl -sL https://news.ycombinator.com | pandoc -f html -t markdown | aichat "resumí"

Produce Markdown estructurado, que los LLMs digieren mejor que texto plano. Podés combinarlo con readable para doble filtrado:

curl -sL https://URL | readable | pandoc -f html -t markdown | aichat "resumí"

4. shot-scraper / ttok — para controlar tokens

Si te preocupa mandar demasiado contexto:

pip install shot-scraper ttok
curl -sL https://news.ycombinator.com | w3m -dump -T text/html | ttok -t 4000 | aichat "resumí"

ttok trunca el texto a N tokens antes de mandarlo al LLM.


5. La API de HN directamente (para HN específicamente)

HN tiene una API JSON pública, mucho más limpia que parsear HTML:

curl -s "https://hacker-news.firebaseio.com/v0/topstories.json" | \
  python3 -c "import sys,json; ids=json.load(sys.stdin)[:10]; print('\n'.join(map(str,ids)))" | \
  xargs -I{} curl -s "https://hacker-news.firebaseio.com/v0/item/{}.json" | \
  jq -r '"\(.score) pts | \(.title) — \(.url // "HN discussion")"' | \
  aichat "resumí estas noticias de HN"

Esto manda solo título, score y URL — sin nada de ruido HTML.


Resumen rápido

Herramienta Calidad del output Instala con
w3m -dump ★★★☆☆ texto plano ya instalado
lynx -dump ★★★☆☆ texto plano apt install lynx
pandoc ★★★★☆ Markdown apt install pandoc
readable ★★★★★ solo contenido npm install -g @mozilla/readability-cli
API de HN ★★★★★ JSON limpio solo curl + jq

Para artículos individuales: readable + pandoc. Para HN específicamente: la API JSON directa es la solución ideal.