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 驱动的代理使用。
核心功能
scrape– 提供 URL 列表,返回主文章(或完整页面)的 Markdown/HTML 格式。crawl– 从种子 URL 开始进行广度优先链接发现,可选择性地抓取每个页面。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 流水线,或任何需要大规模、可靠、隐蔽网页访问的自动化开发者。
相关
- 项目
- 项目
- 项目
- 项目
- 项目