核心用法
hn-extract 是一款针对 HackerNews 的专用内容提取工具,通过 uv run --script 方式零配置运行。用户只需提供 HN 帖子 ID、完整 URL 或本地 Algolia JSON 文件路径,即可自动完成三项任务:
1. 文章抓取:使用 trafilatura 库爬取原始链接的文章内容,清理 HTML 标签并格式化为可读 Markdown
2. 元数据获取:调用 hn.algolia.com/api/v1/items/<id> API 获取帖子标题、作者、得分、时间等关键信息
3. 评论树重构:递归解析嵌套评论结构,按线程深度缩进生成层级清晰的讨论内容
输出为单一 Markdown 文件,整合原文、评论树与元数据,便于快速阅读或作为 LLM 上下文输入。
显著优点
- 零依赖管理:基于
uv的 PEP 723 内联依赖脚本,无需手动创建虚拟环境或 pip install - 健壮性强:内置 HTTP 重试机制,SSL 处理宽松,适配多数反爬场景
- 格式友好:评论按缩进层级可视化呈现,保留讨论脉络;支持 stdout 输出或自动创建目录的文件导出
- 多输入兼容:支持 ID、URL、本地缓存 JSON 三种方式,灵活应对不同使用场景
- Agent 工作流优化:内置标准操作协议,确保 AI Agent 输出符合规范(文件上传+单条合并消息)
潜在局限
- 认证壁垒:需要登录或强反爬机制的网站可能抓取失败
- 动态内容限制:依赖
trafilatura的静态 HTML 解析,无法处理 JS 渲染的 SPA 页面 - 无增量更新:不支持对已导出文件的增量刷新,需重新完整抓取
- 平台单一:仅针对 HackerNews 设计,不具备通用新闻站适配能力
适合人群
- 需要将 HN 讨论整理为知识库的开发者与研究者
- 使用 LLM 分析技术社区观点的内容创作者
- 追求离线阅读体验的 HackerNews 重度用户
- 构建自动化信息工作流的 AI Agent 开发者
常规风险
- IP 封禁:高频抓取可能触发 HN 或目标站点的 rate limit
- 内容时效性:API 与网页抓取存在延迟,极新帖子的评论可能不完整
- 版权合规:提取内容仅限个人学习使用,公开分发需遵守原站条款
- 依赖可信性:
trafilatura及 Algolia API 的可用性影响工具稳定性