Skip to content

SakuraPuare/PageVoyager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PageVoyager

PageVoyager 是一个面向网页探索、页面留档和自动截图的命令行工具。

你输入一个 URL,它会像“巡航器”一样自动进入站点、探索可访问页面、执行有限且安全的页面展开操作,并为每个访问到的页面保存整页截图,同时生成结构化报告。

命名

  • 项目名:PageVoyager
  • 中文名:页航
  • 含义:像一艘在网页空间中巡航的航行器,自动访问页面、记录路径、沉淀页面快照
  • 适用场景:竞品采集、网站留档、页面审计、资料归档、手工测试辅助

核心能力

  • 基于 Playwright + Chromium 自动浏览网页
  • 默认仅探索与起始 URL 相同 hostname 的页面
  • 自动处理常见 cookie 弹窗、展开部分折叠区、尝试打开导航入口
  • 遇到登录页时,在可见浏览器模式下暂停,等待手动登录后继续
  • 为每个已访问页面保存 1 张整页截图
  • 生成 report.jsonrun.log,便于检索、排错和二次分析

快速开始

安装依赖和浏览器:

npm install
npm run install:browsers

开发模式运行:

npm run dev -- --url https://example.com

构建后运行:

npm run build
node dist/cli.js --url https://example.com

如果要作为全局命令使用:

npm run build
npm link
page-voyager --url https://example.com

常见用法

抓取一个站点并限制规模:

node dist/cli.js \
  --url https://example.com \
  --max-pages 20 \
  --max-depth 2

后台无头运行:

node dist/cli.js \
  --url https://example.com \
  --headless

指定输出目录:

node dist/cli.js \
  --url https://example.com \
  --output ./runs/example-audit

扩展允许探索的 host:

node dist/cli.js \
  --url https://www.example.com \
  --allowed-hosts www.example.com,docs.example.com

参数说明

  • --url, -u:起始 URL,必填
  • --output, -o:输出目录
  • --max-pages:最多访问多少页
  • --max-depth:最大探索深度,0 表示只抓首页
  • --allowed-hosts:允许继续探索的 host 白名单,逗号分隔
  • --headless:无头模式运行
  • --headed:显式开启可见浏览器,默认模式
  • --login-wait:检测到登录页后暂停等待,默认开启
  • --no-login-wait:检测到登录页时不暂停
  • --navigation-timeout:页面导航超时,单位毫秒
  • --stable-wait:页面额外稳定等待时间,单位毫秒

输出结果

默认会在 runs/ 下生成一次任务目录:

runs/example-com-2026-03-31T01-00-00-000Z/
  screenshots/
    0001-home.png
    0002-products.png
  report.json
  run.log

其中:

  • screenshots/:页面截图
  • report.json:结构化任务报告
  • run.log:执行日志

report.json 重点字段包括:

  • 请求 URL 与最终 URL
  • 页面标题
  • 页面深度与来源页
  • 截图路径
  • 登录页检测结果
  • 自动交互记录
  • 发现链接数与实际入队数
  • 错误信息与耗时

登录页行为

默认使用可见浏览器模式运行。如果检测到登录页,并且终端可交互,程序会:

  1. 保持浏览器停留在当前页面
  2. 等你手动完成登录
  3. 回到终端按回车
  4. 继续后续探索

如果使用 --headless,则不会等待手动登录。

安全边界

PageVoyager 的目标是“探索与留档”,不是高风险自动化操作工具。因此它默认会避免执行以下动作:

  • 删除
  • 支付
  • 购买
  • 提交
  • 发送
  • 退出登录

同时它也会忽略明显不是网页的链接,例如图片、PDF、压缩包、音视频和文档下载链接。

文档

适合继续扩展的方向

  • 支持逐屏截图模式
  • 支持子域名白名单配置文件
  • 支持 Cookie / Session 持久化
  • 支持 HTML 报告导出
  • 支持队列并发和断点续跑

Releases

No releases published

Packages

 
 
 

Contributors