vakra-dev/reader

Open source web infrastructure for AI. Scrape, crawl, and automate the web, clean markdown, browser sessions, ready for your agents.

Reader – 面向 AI 代理的生产级网页抓取

是什么 – 一个 Node.js 库(及配套 CLI),封装 Playwright 以提供即用的隐蔽浏览器池。它隐藏了网页自动化常见的痛点——Cloudflare 挑战、TLS 指纹识别、代理轮换、资源限制——并返回干净的 Markdown 或 HTML,供 LLM 驱动的代理使用。

核心功能

  1. scrape – 提供 URL 列表,返回主文章(或完整页面)的 Markdown/HTML 格式。
  2. crawl – 从种子 URL 开始进行广度优先链接发现,可选择性地抓取每个页面。
  3. browser – 启动一个隐蔽的 Chrome 会话(CDP 端点),您可使用 Playwright 或 Puppeteer 驱动以实现自定义逻辑。

对 AI 的意义 – 检索增强生成(RAG)和自主代理需要可靠、实时的网页内容。Reader 提供了一种稳定、生产就绪的方式获取这些内容,而无需构建一个不断被反机器人措施破坏的定制爬虫。

主要特性

  • 隐蔽浏览器 – TLS 指纹伪装、navigator 欺骗、WebRTC 隐藏、webdriver=false。
  • 浏览器池 – 可配置大小,达到设定页面数或分钟数后自动回收。
  • 代理层级 – 内置对标准(数据中心)和高级(住宅)代理池的支持,具备健康监测和轮换功能。
  • 内容清理 – 自动提取主内容,移除导航栏、页脚、弹窗、Cookie 提示。
  • CLI 与 API – 使用 npx reader … 快速脚本,或在 TypeScript/JavaScript 项目中导入 ReaderClient。
  • 并发处理 – 支持可配置并行度的批量抓取,以及进度回调。

典型用法

import { ReaderClient } from "@vakra-dev/reader";
const r = new ReaderClient();
const res = await r.scrape({
  urls: ["https://example.com"],
  formats: ["markdown", "html"],
  proxyTier: "premium",
  batchConcurrency: 3,
});
console.log(res.data[0].markdown);
await r.close();

或启动完整浏览器以进行自定义导航:

const sess = await r.browser();
const { chromium } = require("playwright-core");
const browser = await chromium.connectOverCDP(sess.wsEndpoint);
const page = await browser.newPage();
await page.goto("https://news.ycombinator.com");
console.log(await page.title());
await sess.close();

安装 – npm install @vakra-dev/reader(Node ≥ 18)。Playwright 的 Chromium 已捆绑;首次使用时运行 npx playwright install chromium。

适合谁使用 – 构建 LLM 代理、RAG 流水线,或任何需要大规模、可靠、隐蔽网页访问的自动化开发者。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目