763e06c127
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.9 KiB
2.9 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| fetch_hackernews_search | function | py | datascience | 1.0.0 | impure | def fetch_hackernews_search(query: str, limit: int = 50, tags: str = "story") -> list[dict] | Busca en Hacker News via la API Algolia publica (sin auth ni anti-bot) y normaliza cada hit a un shape comun de market intelligence. GET a hn.algolia.com/api/v1/search filtrando por tags (story/comment/...). |
|
false | error_go_core |
|
|
list[dict] (puede ser []). Cada fila: {source:'hackernews', platform_id:str, title:str, body:str, url:str, author:str, channel:'hn', created_utc:float, platform_score:int, query:str} | true |
|
python/functions/datascience/fetch_hackernews_search_test.py | python/functions/datascience/fetch_hackernews_search.py |
Ejemplo
from datascience import fetch_hackernews_search
# Buscar stories
rows = fetch_hackernews_search("i wish there was a tool", limit=50, tags="story")
for r in rows[:3]:
print(r["platform_score"], r["title"], r["url"])
# Buscar comentarios (mas senal de demanda conversacional)
comments = fetch_hackernews_search("alternative to", limit=100, tags="comment")
Cuando usarla
Usala como fuente complementaria a fetch_reddit_search en pipelines de market
intelligence. HN concentra demanda tecnica/SaaS y la API Algolia es estable y
sin anti-bot, ideal para escaneos recurrentes. Pasa tags="comment" para captar
demanda expresada en hilos (suele ser mas rica que los titulos de story).
Combina con score_demand_signal para puntuar cada hit.
Gotchas
- Sin red = lista vacia, no excepcion: si la peticion falla (red, 5xx,
JSON malformado) la funcion devuelve
[]. Revisa el tamano del resultado. created_utcviene decreated_at_i(epoch en segundos, float).platform_scoreson lospointsdel item,0si Algolia no lo provee (tipico en comentarios, que no tienen puntos visibles en la API).url: si el hit es una story con enlace externo,urles ese enlace; si no (Ask HN, comentarios, Show HN sin link), cae al permalinkhttps://news.ycombinator.com/item?id={objectID}.- A diferencia de Reddit, Algolia no exige User-Agent ni rate-limitea de forma agresiva en uso normal, pero conviene no abusar.