核心用法
hn-extract 是一个 Python 脚本工具,通过 uv 运行时自动管理依赖。支持三种输入方式:HackerNews 帖子 ID、完整 URL 或本地保存的 Algolia JSON 文件。运行后自动抓取原文章内容(使用 trafilatura 提取并清洗 HTML)、获取帖子元数据和评论树,输出为单一 Markdown 文件。
典型工作流
uv run --script hn-extract.py 46861313 -o /tmp/output.md
显著优点
- 零安装负担:仅需系统预装
uv,所有 Python 依赖自动隔离安装到独立虚拟环境 - 内容完整性:同时获取原文和完整评论线程,评论按层级缩进保留讨论结构
- 输出灵活性:支持指定输出路径或标准输出,自动创建目标目录
- 鲁棒性设计:HTTP 请求带重试机制,SSL 处理宽松以适配更多站点
潜在缺点与局限性
- 反爬限制:需要登录或强反爬策略的网站可能抓取失败
- 依赖外部服务:评论数据依赖 Algolia API,该服务变更或限流会影响功能
- 无增量更新:每次运行重新抓取全部内容,不适合频繁同步场景
- Agent 使用限制:工作流强制要求文件上传与提问合并为单次消息,交互模式受限
适合人群
- 需要离线阅读 HN 讨论的技术读者
- 将 HN 内容作为 LLM 上下文输入的 AI 应用开发者
- 需要整理存档特定技术讨论的研究者
常规风险
- 内容合规:抓取网站内容需遵守目标站点 ToS,存在潜在法律风险
- 数据准确性:自动提取的文章内容可能丢失格式或遗漏媒体元素
- 依赖供应链:
trafilatura和 Algolia API 的稳定性直接影响输出质量