DEV Community

muskert
muskert

Posted on

用 Apify 搭建 HackerNews Firefeed:Firebase API 实时抓取热门内容

用 Apify 搭建 HackerNews Firefeed:Firebase API 实时抓取热门内容

Hacker News(HN)每天产生大量高质量的技术讨论和社区内容。很多科技公司、投资人、研究者都在追踪 HN 上的热门内容——这对科技趋势监控、早期产品信号捕捉、AI 训练数据收集都有巨大价值。

这篇文章介绍如何用 Apify Actor 构建一个 HN Firefeed 爬虫,基于 HN 官方 Firebase API,稳定高效地抓取热门、最新、最佳帖子和嵌套评论数据。

为什么选 Firebase API?

HN 官方将数据同步到 Firebase 平台,提供了一套公开的 REST API:

https://hacker-news.firebaseio.com/v0/topstories.json
https://hacker-news.firebaseio.com/v0/item/{id}.json
Enter fullscreen mode Exit fullscreen mode

核心优势:

  • 官方 API,完全合规,无需绕反爬
  • 纯 HTTP 请求,响应速度极快(<50ms)
  • 数据结构化,含完整评论嵌套结构
  • 无需登录、无需 API key
  • 支持 ASK_HN、SHOW_HN 等特殊 Feed

Feed 类型全解析

Feed 类型 用途 说明
top 热门帖 按评分排序
new 最新帖 按发布时间排序
best 最佳帖 社区精选高质量内容
ask_hn Ask HN 用户提问帖精华
show_hn Show HN 用户展示项目帖

快速开始

访问 HackerNews Firefeed Scraper 获取工具。

技术实现

HN Firebase API 返回结构化 JSON,通过 parent-kids 嵌套结构组织评论:

def fetch_kids(kids, depth=0):
    if depth >= max_depth or len(comments) >= max_comments:
        return
    for kid_id in kids[:5]:
        item = get_item(kid_id)
        if item and item.get("type") == "comment":
            comments.append(parse_comment(item, depth))
            fetch_kids(item["kids"], depth + 1)
Enter fullscreen mode Exit fullscreen mode

定价策略

Actor 采用 pay-per-result 定价:$0.0001–0.001 / 条帖子,Apify $5/月免费额度足够日常使用。

后续优化方向

  • 添加 GPT 情感分析评分
  • 定时调度每日自动推送趋势报告
  • 集成 Google Sheets / Airtable 导出

相关链接:

Top comments (0)