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:
w3m -dumpw3m 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.
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.
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.
pandoc — convierte HTML a Markdown limpiocurl -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í"
shot-scraper / ttok — para controlar tokensSi 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.
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.
| 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.