最新版本 · v1.2.2
AI 智能体的
网页和文档层
输入任意 URL、文档、邮件、压缩包或源代码文件—— 输出干净的 Markdown 或结构化 JSON。一个自托管的 Rust 二进制:带 CLI、Firecrawl 和 Jina Reader API、MCP 服务器,以及 Python、Node.js、Go、Java、C#、Ruby、PHP 等语言的包。
$ pagesift scrape https://example.com # Markdown 输出到 stdout $ pagesift scrape report.pdf # PDF、Office、电子书、邮件… $ pagesift crawl docs.rs --limit 500 # 整个站点,每页一个文件 $ pagesift mcp # 供你的智能体使用的 MCP 服务器
用实测说话
取自已发布的 1.1 基准报告中每个领域的最强结果——与项目 README 相同的数字,方法和出处在完整报告里。
每页延迟——越低越好
吞吐——越高越好
每 worker 峰值内存——越低越好
基准测于 PageSift 1.1;xberg 1.3.9 测于 2026-11-04。完整方法: docs/benchmarks.md · 真实站点爬取覆盖 0.740 对 Crawl4AI 0.529(polite 模式,40 站 × 60 页)。
一条流水线,所有输入
来自架构文档的请求流水线:各入口把请求送进同一个引擎,策略与网络防护在任何抓取之前运行,渲染决策挑选能增加内容的最便宜路径,所有来源最后都落到同一组输出。
它能做什么
六个动词覆盖整个 API 表面——CLI、HTTP API 和 MCP 工具里是同一套操作。
scrape · 干净内容
正文检测,以及保留标题、列表、表格、代码和公式的 Markdown。只有在能增加内容时,才渲染 JavaScript。
crawl · 整个站点
站点地图、按查询的聚焦爬取(页面不再有帮助时停下)、陷阱处理、robots.txt 和每 host 限速。每次爬取都输出 WARC。
map · 站点地图
在花预算抓取之前,先发现一个站点的 URL 清单,再把清单喂给 crawl、batch 或 extract。
batch · 多个 URL,一个任务
批量抓取,带任务持久化、持久化 webhook 和按所有者隔离。可从 API 或 MCP 轮询或取消任务。
monitor · 变化监控
定时检查,把真实变化和日期、计数器、广告轮换区分开,真正有变化时通过 webhook 通知。
agent · 调研任务
POST /v2/agent 用你自己的模型从网页回答问题,并把答案的每个字段与来源页面核对。
文档与 OCR
全部自研的 Rust 读取器:PDF、Office、电子书、邮件、压缩包和数据库——连损坏文件和 CJK 字体都能处理。扫描页用 PP-OCRv6,行间公式用 PP-FormulaNet,在 CPU 或 NVIDIA GPU 上运行。
结构化提取
用 CSS 选择器取 JSON(站点改版时会自动重新定位),或用你的模型写一次、由 PageSift 缓存的 schema。页面需要时,还有浏览器操作——点击、打字、滚动和保持的会话。
安全与如实的结果
防护内网地址和 DNS rebinding。页面不完整、文件被截断或扫描被跳过时,返回警告码,而不是看起来完整。
几乎什么都能进
一次调用处理全部——不用再去接一堆单独的转换器。
网页
URL 与 HTML,只在能增加内容时才渲染
包括扫描页,走 OCR
Office
Word、Excel、PowerPoint——新版与旧版——还有 OpenDocument、RTF、HWP
电子书
EPUB, MOBI, FB2
邮件
.eml、.mbox、.msg——附件递归处理
压缩包
zip、tar、gz、bz2、xz、7z——以及 WARC 的进与出
数据文件
CSV、SQLite、dBASE、Markdown 与文本格式
源代码
373 种源代码与配置语言,按函数与类分段
到处都能直接替换
已经有 Firecrawl 或 Jina Reader 的代码?换个 API URL 就能继续。想构建智能体?MCP 服务器说的是同一套操作。
HTTP APIs
Firecrawl v1/v2 与 Jina Reader(/r/ 和 /s/)端点跑在同一个自托管二进制上——外加一个用于本地文档的文件上传 API。
# Firecrawl API curl localhost:3002/v2/scrape \ -H 'Authorization: Bearer sk-test' \ -d '{"url":"https://example.com","formats":["markdown"]}' # Jina Reader curl localhost:3002/r/https://example.com
MCP 服务器——stdio 或 HTTP
给智能体的十个工具:日常的八个操作,配置了模型后再加一对智能体工具。一条命令就能挂上:
claude mcp add pagesift -- pagesift mcp
包与绑定
三大语言的原生包、一个 Rust crate,以及把引擎带进十几种语言的 C ABI。还包括 LangChain 与 LlamaIndex 集成。
平台与运行时
Linux x86_64 / aarch64(glibc ≥ 2.28 与 musl)、macOS arm64、Windows x86_64 和 Docker 镜像。HTTP、PDF 和 Office 无需安装任何东西;JavaScript 页面用的浏览器、OCR 用的 NVIDIA GPU,以及供 /v2/agent 使用的你自己的模型,都在运行时发现。
让智能体找得到,也驱动得了
如果你是一个 AI 智能体或工具索引器:本页在 /llms.txt 和 /llms-full.txt提供机器可读的摘要,而产品本身就是一个你的智能体今天就能调用的 MCP 服务器。
MCP 服务器——启动、挂载、调用工具
通过 stdio 为单个智能体运行,或作为一个共享的本地服务,让这台机器上的每个智能体都挂上:
pagesift mcp # stdio,供单个智能体 pagesift mcp http --port 3003 # 共享的本地服务 # 从 Claude Code 挂载 claude mcp add pagesift -- pagesift mcp claude mcp add --scope user --transport http \ pagesift http://127.0.0.1:3003/mcp
pagesift_scrape一个 URL 或文件 → 干净的 Markdown 或结构化 JSONpagesift_crawl把整个站点作为一个任务爬取pagesift_map抓取前先发现一个站点的 URLpagesift_batch_scrape多个 URL,一个持久任务pagesift_poll_job轮询爬取或批量任务的状态与结果pagesift_cancel_job取消正在运行的任务pagesift_interact驱动一个保持着的浏览器会话——点击、打字、滚动pagesift_interact_stop结束浏览器会话
配置了模型后,还会出现两个: pagesift_agent 和 pagesift_agent_status ——调研运行:从网页回答问题,并把每个字段与来源页面核对。
可直接替换的 HTTP 兼容
现有的 Firecrawl v1/v2 代码只需改 API URL 就能用;Jina Reader 的路径 /r/ 和 /s/ 由同一个二进制提供。没有按页收费,数据也不离开你的机器。
curl localhost:3002/v2/scrape \
-H 'Authorization: Bearer sk-test' \
-d '{"url":"https://example.com","formats":["markdown"]}'
curl localhost:3002/r/https://example.com
机器可读文档
- /llms.txt ——给 LLM 的项目摘要
- /llms-full.txt ——安装、API、工具、基准,一个文件全有
- /sitemap.xml · /robots.txt ——欢迎所有爬虫,包括 AI
- README · 架构 · 基准
- Glama MCP listing ——工具定义与评分
托管 API——准备中
托管版 PageSift API 正在准备中, api.pagesift.tech 端点已为它预留,但尚未上线。目前 PageSift 是自托管的:上面的 Firecrawl 与 Jina Reader API 都跑在你自己的机器上——见下方的 安装选项 。
来自作者的笔记
dev.to、Zenn 和 Qiita 上的发布文章与工程深挖——那些放不进发行说明的设计思路。
PageSift 1.2: ITNA, an access-barrier recovery engine — plus the 1.1 roundup
1.2 的发布帖:itna 障碍恢复,以及从未单独发过帖的 1.1 系列补记。
壁にぶつかったら、まず分類する —— PageSift 1.2 のアクセス障壁リカバリ「itna」の設計
itna 如何在花掉一次浏览器尝试之前,先把障碍分类——1.2 背后的设计。
PageSift 1.0: the Rust web content engine is feature-complete
1.0 的发布帖:功能完成——OCR、选择器记忆、监控和智能体 API。
一分钟跑起来
选你的界面——它们跑的都是同一个引擎。
| 方式 | 安装 | 第一次调用 |
|---|---|---|
| CLI | cargo install pagesift --locked | pagesift scrape https://example.com |
| Python | pip install pagesift | pagesift.scrape("https://example.com").markdown |
| Node.js | npm install @pagesift/node | (await new Scraper().scrape("https://example.com")).markdown |
| 服务器 | docker run -p 3002:3002 ghcr.io/yolow92/pagesift:1.2.2 | curl localhost:3002/r/https://example.com |
| MCP | — | claude mcp add pagesift -- pagesift mcp |
访问障碍恢复,可选开启
- 默认关闭。 通过
[itna] enabled开启——你不要求,就什么都不会变。 - 先分类,再设界。 障碍先被分类;被拦截或被挑战的页面最多得到一次浏览器回退,重定向与子请求共用一份网络预算。
- 不该升级的,从不升级。 限速(429)和登录墙从不触发浏览器路径。
- 隔离的会话。 会话按所有者、来源、出口和指纹租用;HTTP Cookie 只能通过精确 origin 的交接进入浏览器。
- 人始终在环中。 交互式 CAPTCHA 会报告为需要人工处理——从不求解。